Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment représenter une relation de base de données plusieurs à plusieurs catégorisée où les catégories sont spécifiques à un côté de la relation

Ajoutez un champ ID à votre Job Titles table - appelons-la JobTitleID

Maintenant vos Assignments la table a Employee ID et JobTitleID .

Cela signifie bien sûr que pour trouver les projets d'un employé, vous devez vous joindre via les Assignments tableau et les Job Titles tableau

MODIFIER

Après discussion dans les commentaires, veuillez ne pas tenir compte de ce qui précède, je l'ai laissé uniquement comme historique.

Voici maintenant la nouvelle version :Vos Assignments besoins de la table (comme vous l'avez déjà pensé)

  • Identifiant d'employé
  • ID du projet
  • Identifiant du titre
  • ID d'affectation

Mais il a aussi besoin d'un UNIQUE INDEX(EmployeeID, ProjectID) - cela rendra impossible pour un employé d'être dans le même projet sous différents titres.

Plusieurs employés sous le même titre seront toujours autorisés, ainsi que plusieurs titres dans différent projets pour un employé.