Ein oder zwei Primärschlüssel in einer Many-to-Many-Tabelle?

Ich habe die folgenden Tabellen in meiner Datenbank, die eine Viele-zu-Viele-Beziehung haben, die durch eine Verbindungstabelle ausgedrückt wird, die Fremdschlüssel zu den Primärschlüsseln jeder der Haupttabellen enthält:

Widget: WidgetID (PK), Titel, PreisUser: UserID (PK), Vorname, Nachname

Nehmen Sie an, dass jede Benutzer-Widget-Kombination einzigartig ist. Ich sehe zwei Möglichkeiten, um die Verbindungstabelle zu strukturieren, die die Datenbeziehung definiert:

UserWidgets1: UserWidgetID (PK), WidgetID (FK), UserID (FK) UserWidgets2: WidgetID (PK, FK), UserID (PK, FK)

Option 1 enthält eine einzelne Spalte für den Primärschlüssel. Dies erscheint jedoch unnötig, da die einzigen in der Tabelle gespeicherten Daten die Beziehung zwischen den beiden Primärtabellen sind und diese Beziehung selbst einen eindeutigen Schlüssel bilden kann. Dies führt zu Option 2, die einen zweispaltigen Primärschlüssel hat, jedoch die einspaltige eindeutige Kennung von Option 1 verliert. Optional kann der ersten Tabelle auch ein zweispaltiger eindeutiger Index (WidgetID, UserID) hinzugefügt werden.

Gibt es einen wirklichen Unterschied zwischen den beiden in Bezug auf die Leistung oder einen Grund, einen Ansatz gegenüber dem anderen vorzuziehen, um die UserWidgets-Many-to-Many-Tabelle zu strukturieren?

Antworten auf die Frage(18)

Ihre Antwort auf die Frage