GORM とのデータベース関係: 外部キーの作成
リレーショナル データベースの領域では、外部キーは関連テーブル間の重要なリンクとして機能します。この記事は、人気のある ORM (オブジェクト リレーショナル マッピング) ライブラリである GORM を使用して、Golang アプリケーションで外部キー関係を確立する方法をガイドすることを目的としています。
問題の理解
User と UserInfo という 2 つのモデルを定義し、それらの UID フィールドと ID フィールドの間に外部キー関係を確立したいと考えています。課題は、UserInfo モデルの UID フィールドが User モデルの id フィールドを正しく参照していることを確認することです。
解決策
この問題を解決するには、次のことを行う必要があります。モデルを定義した後、データベース スキーマに外部キー制約を構成します。これは、次の手順で実行できます。
1.移行中に外部キーを追加する
モデルを作成した後、GORM の AddForeignKey メソッドを使用して、データベース移行での外部キー関係を指定します。移行コードに次の行を追加します。
db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
この行は、t_user_info テーブルの UID 列に外部キー制約を確立し、t_user テーブルの id 列を参照します。また、外部キーの動作を「RESTRICT」に設定します。これにより、関係に違反するデータの挿入または削除が防止されます。
2.アソシエーション外部キーの設定
User モデルでは、UserInfo モデルの User フィールドに外部キー タグで注釈を付けています。
User User `gorm:"foreignkey:u_id;association_foreignkey:id"`
このタグは、ユーザーがフィールドは外部キーとして使用され、User モデルの ID フィールドに関連付けられている必要があります。
3.データベースを更新します
データベース移行を実行して、外部キー制約をスキーマに適用します。
注:
GORM バージョン 2.0 以降、モデルのアノテーションで外部キー制約を明示的に設定する必要がなくなりました。ただし、以前のバージョンの場合も、上記で概説した解決策が引き続き適用されます。
これらの手順に従うことで、User モデルと UserInfo モデルの間に適切な外部キー関係が確立され、UserInfo モデルの UID フィールドが正確に参照されるようになります。 User テーブルのデータ。
以上がGORMを使用してGolangで外部キー関係を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。