Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich eine Fremdschlüsselbeziehung mit einem zusammengesetzten MySQL-Primärschlüssel?

Wie erstelle ich eine Fremdschlüsselbeziehung mit einem zusammengesetzten MySQL-Primärschlüssel?

Barbara Streisand
Barbara StreisandOriginal
2025-01-04 13:07:14142Durchsuche

How to Create a Foreign Key Relationship with a MySQL Composite Primary Key?

Verknüpfen zusammengesetzter Primärschlüssel in MySQL

Im gegebenen Szenario haben Sie zwei Tabellen, Tutorial und Gruppe, wobei Tutorial einen zusammengesetzten Primärschlüssel hat Schlüssel (bettingTime, Tag und tutorId). Sie möchten eine Beziehung zwischen diesen Tabellen herstellen, indem Sie in der Gruppe ein Feld erstellen, das auf den zusammengesetzten Primärschlüssel im Tutorial verweist.

Laut MySQL-Dokumentation ist die Einrichtung von Fremdschlüsselzuordnungen zu zusammengesetzten Schlüsseln möglich. Um dies zu erreichen:

  1. Spalten zur Gruppe hinzufügen: Erstellen Sie drei Spalten in der Gruppentabelle, die den zusammengesetzten Primärschlüsselfeldern im Tutorial entsprechen: beggingTime, day und tutorId.
  2. Fremdschlüsselbeziehung definieren: Fügen Sie die folgende Zeile zur Gruppentabelle hinzu Definition:
FOREIGN KEY (`beggingTime`,`day`,`tutorId`) REFERENCES tutorial(`beggingTime`,`day`,`tutorId`)

Dadurch wird eine Fremdschlüsselbeziehung zwischen dem zusammengesetzten Primärschlüssel im Tutorial und den entsprechenden Feldern in der Gruppe hergestellt.

Es ist jedoch wichtig zu beachten, dass Experten dies empfehlen Neuarchitektur der Tutorial-Tabelle zur Verwendung eines einzelnen Primärschlüssels (z. B. eines Identitätsersatzschlüssels). Dies verbessert die Leistung, da SQL für Beziehungen optimiert ist, die Primärschlüssel und nicht zusammengesetzte Schlüssel umfassen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Fremdschlüsselbeziehung mit einem zusammengesetzten MySQL-Primärschlüssel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn