Mysql
 sql >> Database >  >> RDS >> Mysql

Come rappresentare una relazione di database molti-a-molti categorizzata in cui le categorie sono specifiche per un lato della relazione

Aggiungi un campo ID a Job Titles tabella - chiamiamola JobTitleID

Ora i tuoi Assignments la tabella ha Employee ID e JobTitleID .

Questo ovviamente significa che per trovare i Progetti per un dipendente, devi iscriverti tramite i Assignments tabella e i Job Titles tabella

MODIFICA

Dopo la discussione nei commenti, per favore ignora quanto sopra, l'ho lasciato solo come cronologia.

Ora ecco la nuova versione:I tuoi Assignments esigenze della tabella (come hai già considerato)

  • ID dipendente
  • ID progetto
  • ID titolo
  • ID assegnazione

Ma ha anche bisogno di un UNIQUE INDEX(EmployeeID, ProjectID) - questo renderà impossibile per un dipendente essere nello stesso progetto sotto diversi titoli.

Saranno comunque consentiti più dipendenti con lo stesso titolo, nonché più titoli in diversi progetti per un dipendente.