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;