Datenbankbeziehungen mit GORM: Fremdschlüssel erstellen
Im Bereich relationaler Datenbanken dienen Fremdschlüssel als entscheidende Verknüpfungen zwischen verwandten Tabellen. Dieser Artikel soll Ihnen dabei helfen, wie Sie mithilfe von GORM, einer beliebten ORM-Bibliothek (Object-Relational Mapping), eine Fremdschlüsselbeziehung in Ihrer Golang-Anwendung einrichten.
Das Problem verstehen
Sie haben zwei Modelle definiert, User und UserInfo, und möchten eine Fremdschlüsselbeziehung zwischen ihren UID- und ID-Feldern herstellen. Die Herausforderung besteht darin, sicherzustellen, dass das UID-Feld im UserInfo-Modell korrekt auf das ID-Feld im User-Modell verweist.
Lösung
Um dieses Problem zu beheben, müssen Sie Folgendes tun Konfigurieren Sie eine Fremdschlüsseleinschränkung in Ihrem Datenbankschema, nachdem Sie Ihre Modelle definiert haben. Dies kann mit den folgenden Schritten erreicht werden:
1. Fremdschlüssel während der Migration hinzufügen
Nachdem Sie die Modelle erstellt haben, verwenden Sie die AddForeignKey-Methode von GORM, um die Fremdschlüsselbeziehung in Ihrer Datenbankmigration anzugeben. Fügen Sie Ihrem Migrationscode die folgende Zeile hinzu:
db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
Diese Zeile richtet eine Fremdschlüsseleinschränkung für die UID-Spalte in der Tabelle t_user_info ein und verweist auf die ID-Spalte in der Tabelle t_user. Außerdem wird das Verhalten des Fremdschlüssels auf „RESTRICT“ gesetzt, wodurch das Einfügen oder Löschen von Daten verhindert wird, die die Beziehung verletzen würden.
2. Zuordnungsfremdschlüssel festlegen
In Ihrem Benutzermodell haben Sie das Benutzerfeld im UserInfo-Modell mit einem Fremdschlüssel-Tag versehen:
User User `gorm:"foreignkey:u_id;association_foreignkey:id"`
Dieses Tag informiert GORM darüber, dass der Benutzer Das Feld sollte als Fremdschlüssel verwendet werden und ist mit dem ID-Feld im Benutzermodell verknüpft.
3. Datenbank aktualisieren
Führen Sie die Datenbankmigration aus, um die Fremdschlüsseleinschränkung auf Ihr Schema anzuwenden.
Hinweis:
Ab GORM Version 2.0 ist es nicht mehr notwendig, explizit Fremdschlüsseleinschränkungen in den Modellanmerkungen festzulegen. Für frühere Versionen gilt jedoch weiterhin die oben beschriebene Lösung.
Durch Befolgen dieser Schritte haben Sie eine ordnungsgemäße Fremdschlüsselbeziehung zwischen Ihrem User- und UserInfo-Modell hergestellt und so sichergestellt, dass das UID-Feld im UserInfo-Modell korrekt verweist die Daten in der Benutzertabelle.
Das obige ist der detaillierte Inhalt vonWie erstelle ich mithilfe von GORM Fremdschlüsselbeziehungen in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!