CREATE TABLE IF NOT EXISTS `trabalho`.`modalidadeturno` (
`CodModalidade` INT(11) NOT NULL ,
`Manha` TINYINT(1) NULL ,
`Tarde` TINYINT(1) NULL DEFAULT NULL ,
`Noite` TINYINT(1) NULL DEFAULT NULL ,
`ManhaT` TIME NULL DEFAULT NULL ,
`TardeT` TIME NULL DEFAULT NULL ,
`NoiteT` TIME NULL DEFAULT NULL ,
PRIMARY KEY (`CodModalidade`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
A tabela modalidadedseman é só para verificação se o dia foi selecionado.
A tabela modalidadeturno é para os dias da semana que pode ir ate 7 de cada modalidade é nessa parte que não estou conseguindo pois cada modalidade pode ter ate 7 referencias nessa tabela ficando uma especia de matriz [x-modalidades],[dias_da_semana] não sei se é possível criar esse tipo de matriz em uma mesma tabela tipo duas primary key na mesma tabela
e outra como fica o relacionamento já que temos a tabela modalidade MUITOS --para-- modalidadedseman MUITOS ate 7 na verdade
tinha feito no mysql-workbench o relacionamento de muito para muitos com essa tabela abaixo
CREATE TABLE IF NOT EXISTS `trabalho`.`modalidade_has_modalidadeturno` (
`modalidade_CodModalidade` INT(11) NOT NULL ,
`modalidadeturno_CodModalidade` INT(11) NOT NULL ,
INNER JOIN modalidade_has_modalidadeturno ON (modalidade_has_modalidadeturno.modalidadeturno_CodDiaSemana = modalidadeturno.CodDiaSemana and modalidade_has_modalidadeturno.modalidade_CodModalidade=1);
ate ai funciona normal
mas agora tenho que inserir uma nova modalidade
INSERT INTO modalidade(Nome) VALUES('teste1');
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(1,false,false,true,"00:00:00","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaS
emana) VALUES(2,1);
já não vai, a tabela modalidadeturno não aceita duplicar o campo CodDiaSemana
como ficaria a resolução desse problema ? e sobre la em cima também se é possível criar matriz no banco de dados?
se alguém tiver ideias de como simplificar essas tabelas agradeço.
Utilizamos cookies e tecnologias semelhantes de acordo com a nossa Política de Privacidade, e ao continuar navegando, você concorda com estas condições.
Pergunta
Alexandrel5
Como vai pessoal?
seguinte tenho essas tabelas
CREATE TABLE IF NOT EXISTS `trabalho`.`modalidade` (
`CodModalidade` INT(11) NULL AUTO_INCREMENT ,
`Nome` CHAR(20) NOT NULL ,
PRIMARY KEY (`CodModalidade`) ,
UNIQUE INDEX `CodModalidade_UNIQUE` (`CodModalidade` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
CREATE TABLE IF NOT EXISTS `trabalho`.`modalidadedsemana` (
`Codmodalidadedsemana` INT(11) NOT NULL ,
`modalidade_CodModalidade` INT(11) NOT NULL ,
`Domingo` TINYINT(1) NULL DEFAULT NULL ,
`Segunda` TINYINT(1) NULL DEFAULT NULL ,
`Terca` TINYINT(1) NULL DEFAULT NULL ,
`Quarta` TINYINT(1) NULL DEFAULT NULL ,
`Quinta` TINYINT(1) NULL DEFAULT NULL ,
`Sexta` TINYINT(1) NULL DEFAULT NULL ,
`Sabado` TINYINT(1) NULL DEFAULT NULL ,
PRIMARY KEY (`Codmodalidadedsemana`, `modalidade_CodModalidade`) ,
INDEX `fk_modalidadedsemana_modalidade1_idx` (`modalidade_CodModalidade` ASC) ,
CONSTRAINT `fk_modalidadedsemana_modalidade1`
FOREIGN KEY (`modalidade_CodModalidade` )
REFERENCES `trabalho`.`modalidade` (`CodModalidade` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
CREATE TABLE IF NOT EXISTS `trabalho`.`modalidadeturno` (
`CodModalidade` INT(11) NOT NULL ,
`Manha` TINYINT(1) NULL ,
`Tarde` TINYINT(1) NULL DEFAULT NULL ,
`Noite` TINYINT(1) NULL DEFAULT NULL ,
`ManhaT` TIME NULL DEFAULT NULL ,
`TardeT` TIME NULL DEFAULT NULL ,
`NoiteT` TIME NULL DEFAULT NULL ,
PRIMARY KEY (`CodModalidade`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
A tabela modalidadedseman é só para verificação se o dia foi selecionado.
A tabela modalidadeturno é para os dias da semana que pode ir ate 7 de cada modalidade é nessa parte que não estou conseguindo pois cada modalidade pode ter ate 7 referencias nessa tabela ficando uma especia de matriz [x-modalidades],[dias_da_semana] não sei se é possível criar esse tipo de matriz em uma mesma tabela tipo duas primary key na mesma tabela
e outra como fica o relacionamento já que temos a tabela modalidade MUITOS --para-- modalidadedseman MUITOS ate 7 na verdade
tinha feito no mysql-workbench o relacionamento de muito para muitos com essa tabela abaixo
CREATE TABLE IF NOT EXISTS `trabalho`.`modalidade_has_modalidadeturno` (
`modalidade_CodModalidade` INT(11) NOT NULL ,
`modalidadeturno_CodModalidade` INT(11) NOT NULL ,
PRIMARY KEY (`modalidade_CodModalidade`, `modalidadeturno_CodModalidade`) ,
INDEX `fk_modalidade_has_modalidadeturno_modalidadeturno1_idx` (`modalidadeturno_CodModalidade` ASC) ,
INDEX `fk_modalidade_has_modalidadeturno_modalidade1_idx` (`modalidade_CodModalidade` ASC) ,
CONSTRAINT `fk_modalidade_has_modalidadeturno_modalidade1`
FOREIGN KEY (`modalidade_CodModalidade` )
REFERENCES `trabalho`.`modalidade` (`CodModalidade` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_modalidade_has_modalidadeturno_modalidadeturno1`
FOREIGN KEY (`modalidadeturno_CodModalidade` )
REFERENCES `trabalho`.`modalidadeturno` (`CodModalidade` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
ai comecei a cadastrar
INSERT INTO modalidade(Nome) VALUES('teste');
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(1,false,false,true,"00:00:00","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,1);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(2,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,2);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(3,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,3);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(4,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,4);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(5,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,5);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(6,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,6);
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(7,true,false,true,"10:10:10","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaSemana) VALUES(1,7);
Nessa parte fiz um select para testar
SELECT modalidade.Nome,Modalidadeturno.Manha,Modalidadeturno.Tarde,Modalidadeturno.Noite,Modalidadeturno.ManhaT,Modalidadeturno.TardeT,Modalidadeturno.NoiteT
FROM Modalidade,Modalidadeturno,
INNER JOIN modalidade_has_modalidadeturno ON (modalidade_has_modalidadeturno.modalidadeturno_CodDiaSemana = modalidadeturno.CodDiaSemana and modalidade_has_modalidadeturno.modalidade_CodModalidade=1);
ate ai funciona normal
mas agora tenho que inserir uma nova modalidade
INSERT INTO modalidade(Nome) VALUES('teste1');
INSERT INTO modalidadeturno(CodDiaSemana,Manha,Tarde,Noite,ManhaT,TardeT,NoiteT) VALUES(1,false,false,true,"00:00:00","00:00:00","12:12:00");
INSERT INTO modalidade_has_modalidadeturno(modalidade_CodModalidade,modalidadeturno_CodDiaS
já não vai, a tabela modalidadeturno não aceita duplicar o campo CodDiaSemana
como ficaria a resolução desse problema ? e sobre la em cima também se é possível criar matriz no banco de dados?
se alguém tiver ideias de como simplificar essas tabelas agradeço.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.