ホームページ >バックエンド開発 >Golang >GORMを使用してGolangで外部キー関係を作成するにはどうすればよいですか?

GORMを使用してGolangで外部キー関係を作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-26 03:41:11213ブラウズ

How to Create Foreign Key Relationships in Golang using GORM?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。