Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como representar um relacionamento de banco de dados de muitos para muitos categorizado em que as categorias são específicas para um lado do relacionamento


Adicione um campo de ID a você Job Titles table - vamos chamá-la de JobTitleID

Agora suas Assignments tabela tem Employee ID e JobTitleID .

Obviamente, isso significa que, para encontrar os Projetos de um funcionário, você precisa ingressar por meio das Assignments tabela e os Job Titles tabela

EDITAR

Após discussão nos comentários, por favor desconsidere o acima, deixei apenas como história.

Agora aqui está a nova versão:Suas Assignments necessidades da mesa (como você já considerou)
  • ID do funcionário
  • ID do projeto
  • ID do título
  • ID da atribuição

Mas também precisa de um UNIQUE INDEX(EmployeeID, ProjectID) - isso impossibilitará que um funcionário esteja no mesmo projeto sob diferentes títulos.

Vários funcionários com o mesmo cargo ainda serão permitidos, bem como vários cargos em diferentes projetos para um funcionário.