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 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.