ホームページ  >  記事  >  バックエンド開発  >  gormで結果テーブルの列名を「many」から「many」に変更する方法

gormで結果テーブルの列名を「many」から「many」に変更する方法

PHPz
PHPz転載
2024-02-10 13:45:081040ブラウズ

如何在 gorm 中将结果表的列名从“多”更改为“多”

データベース操作に gorm を使用する場合、結果テーブルの列名を「many」から「many」に変更する必要がある場合があります。これにより、コードがより明確で読みやすくなり、コードの保守性が向上します。では、この関数を gorm に実装するにはどうすればよいでしょうか?この記事では、PHP エディターの Strawberry が、結果テーブルの列名を簡単に変更するためのシンプルで効果的な方法を紹介します。

質問内容

typeormを使ってnestjsをいろいろ遊んできましたが、今はgolangとgormの使い方を勉強しています。 go用のnestjsでシステムを再構築していますが、多対多の関係を使用するのに問題があります。私はすでに運用環境にあり、データが設定されているデータベースを操作しているため、問題が起こらないように他のプロジェクトと同じ構造をモデル化する必要があります。

さまざまな方法で関連する 2 つのテーブルがあります。playlistsgenres です。運用データベースでは、次のテーブルを含む playlists_genres > が生成されます。フィールドの数:

これらのフィールドは playlistsid および genresid

に似ていることに注意してください。

golang プロジェクトのテーブルの m2m 結果は次のとおりです。

生成されたフィールドは必要なものとは異なることに注意してください。本番環境のデータベースの識別子 (playlistsidgenresid) を生成する必要があります。

私の関係コードは次のようになります:

リーリー ###そして### リーリー

多くの情報を確認しましたが、必要な名前の列を含む中間テーブルを手動で作成し、それらを 1 つから複数に関連付ける以外に、これらの列の名前を変更する方法が見つかりませんでした。

###この問題を手伝ってくれませんか?テーブルを手動で作成せずにこれを行うことは可能ですか?ありがとう!

回避策

残念ながら、目的を達成する唯一の方法は、

PlaylistGenre

という構造を作成し、ここで列名をオーバーライドすることだと思います。

Gorm 規則を使用すると、データベース内に作成された外部キー制約のみを操作できます。自動的に作成された結合テーブルの実際の列名を上書きすることはできません。 gorm
アノテーションでは、次のプロパティを使用して外部キーを処理できます:
foreignKeyreferencesjoinForeignKey、および joinReferences ###。 ただし、column を使用する必要がありますが、ここでは使用できません。

このアプローチの例が必要な場合は、お知らせください。

以上がgormで結果テーブルの列名を「many」から「many」に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。