Essa é a situação existe tres tabelas uma armazena os dados dos alunos outro das turma e a outra aluno_turma fiz uma chave composta na tabela ‘aluno_turma’ para que o banco não cadastre o aluno na mesma turma duas vezes, mais fazendo alguns testes percebe que o banco de dados cadastra o aluno em outra turma mais no mesmo horario da outra turma que foi cadastrado, se não é no mesmo horario é no mesmo curso. Ou seja quero que o banco faça essa verificação e retorne um erro.
Como poderia resolver essa situação no MySQL ou no sistema?
Essas são as tabelas
CREATE TABLE IF NOT EXISTS CursoTDB.Aluno (
IdAluno INT(11) NOT NULL AUTO_INCREMENT,
NomeAluno VARCHAR(100) NOT NULL,
Endereco VARCHAR(255) NOT NULL,
Email VARCHAR(50) NOT NULL,
Telefone VARCHAR(13) NOT NULL,
Cpf VARCHAR(11) NOT NULL,
Status INT(11) NULL DEFAULT NULL,
PRIMARY KEY (IdAluno),
UNIQUE INDEX Cpf_UNIQUE (Cpf ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
CREATE TABLE IF NOT EXISTS CursoTDB.Turma (
idTurma INT(11) NOT NULL AUTO_INCREMENT,
DataInicio DATE NOT NULL,
HoraInicio VARCHAR(5) NOT NULL,
Status INT(11) NULL DEFAULT NULL,
Curso_IdCurso INT(11) NOT NULL,
Professor_IdProfessor INT(11) NOT NULL,
PRIMARY KEY (idTurma),
INDEX fk_Turma_Curso_idx (Curso_IdCurso ASC),
INDEX fk_Turma_Professor1_idx (Professor_IdProfessor ASC),
CONSTRAINT fk_Turma_Curso
FOREIGN KEY (Curso_IdCurso)
REFERENCES CursoTDB.Curso (IdCurso)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_Turma_Professor1
FOREIGN KEY (Professor_IdProfessor)
REFERENCES CursoTDB.Professor (IdProfessor)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
CREATE TABLE IF NOT EXISTS CursoTDB.Aluno_Turma (
Turma_idTurma INT(11) NOT NULL,
Aluno_IdAluno INT(11) NOT NULL,
INDEX fk_Aluno_Turma_Turma1_idx (Turma_idTurma ASC),
INDEX fk_Aluno_Turma_Aluno1_idx (Aluno_IdAluno ASC),
PRIMARY KEY (Turma_idTurma, Aluno_IdAluno),
CONSTRAINT fk_Aluno_Turma_Turma1
FOREIGN KEY (Turma_idTurma)
REFERENCES CursoTDB.Turma (idTurma)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_Aluno_Turma_Aluno1
FOREIGN KEY (Aluno_IdAluno)
REFERENCES CursoTDB.Aluno (IdAluno)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;