Go を使用してデータベース内のエンティティ関係を管理する場合、明確な外部キー制約を確立することが不可欠です。この記事では、Go の一般的な ORM である Gorm を使用して、そのような制約を定義するプロセスについて説明します。
2 つのモデルがある次のシナリオ例を考えてみましょう。
type User struct { ID uint Email string Password string } type UserInfo struct { UID uint FirstName string LastName string Phone string Address string User User // Represents the foreign key relationship }
この例では、User が親テーブル、UserInfo が子テーブルです。 UserInfo の UID フィールドは、User テーブルの ID フィールドを参照する外部キーとして機能します。
バージョン 2.0 より前の Gorm では、外部キーを明示的に作成する必要がありました。データベーススキーマのキー制約。これは、移行コードで AddForeignKey メソッドを使用することで実現されます。
db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
ただし、Gorm バージョン 2.0 以降では、この手動プロセスは必要なくなりました。 Gorm は、定義されたモデル間の関係に基づいて外部キー制約を自動的に推論します。
外部キー制約を定義すると、データの整合性が確保され、テーブル間の参照整合性が強制されます。 Gorm の適切なメソッドを理解して適用することで、Go アプリケーションでデータベースの関係を効果的に管理できます。
以上がGorm で外部キー制約を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。