Sim, você deve criar uma
Meeting
entidade para representar o relacionamento muitos para muitos entre Student
e Supervisor
. Nele você pode se relacionar com essas tabelas usando chaves estrangeiras que correspondem às respectivas tabelas. No SQL pode ser algo assim:Create table Meeting {
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
supervisor_id INT NOT NULL,
//rest of the fields...
FOREIGN KEY (student_id) REFERENCES Student(id)
FOREIGN KEY (supervisor_id) REFERENCES Supervisor(id)
}
Você também faria a mesma coisa para o
Supervise
entre Project
e Supervisor
. Além disso, você pode usar algo chamado chave composta em sua mesa de reunião, acho que se trata de preferência pessoal, costumo fazer dessa maneira ao representar muitos para muitos relacionamentos. Não estou dizendo que essa é a sintaxe que você vai usar, isso depende do seu banco de dados, isso foi apenas um exemplo para te apontar na direção certa. Espero que ajude. Também para o seu diagrama (eu estou apenas supondo que isso é para uma classe), você pode querer olhar para software como o visio ou paradigma visual para criar seu diagrama ER. Embora a maioria das pessoas consiga entender seu diagrama atual, essa não é a modelagem correta.
Por diversão fiz um diagrama baseado em suas tabelas:
Você gostaria de uma entidade entre
Supervisor
e Project
se eles são um relacionamento de muitos para muitos. Isso é chamado de associative entity
. Eu rotulei meu SupervisorProject
só para que fiquem um pouco mais claros. Editar Negligenciei o fato de que Aluno e projeto eram muitos para um, consertei isso, desculpe.