Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Darstellung einer kategorisierten Viele-zu-Viele-Datenbankbeziehung, bei der Kategorien spezifisch für eine Seite der Beziehung sind

Fügen Sie Ihren Job Titles ein ID-Feld hinzu Tabelle - nennen wir sie JobTitleID

Jetzt Ihre Assignments Tabelle hat Employee ID und JobTitleID .

Das bedeutet natürlich, dass Sie sich über die Assignments anmelden müssen, um die Projekte für einen Mitarbeiter zu finden Tabelle und die Job Titles Tabelle

BEARBEITEN

Nach Diskussion in den Kommentaren, bitte ignorieren Sie das Obige, ich habe es nur als Verlauf belassen.

Hier ist nun die neue Version:Ihre Assignments Tabellenbedarf (wie Sie bereits überlegt haben)

  • Mitarbeiter-ID
  • Projekt-ID
  • Titel-ID
  • Zuweisungs-ID

Aber es braucht auch einen UNIQUE INDEX(EmployeeID, ProjectID) - dadurch wird es unmöglich, dass sich ein Mitarbeiter im selben befindet Projekt unter verschiedenen Titeln.

Mehrere Mitarbeiter mit demselben Titel sind weiterhin zulässig, ebenso wie mehrere Titel in unterschiedlichen Projekte für einen Mitarbeiter.