RDB

Laravel5 複合主キー

 

 

複合主キーはどういう時利用するの?

 

履歴系

  • 購入者id + 商品id + 購入日時
  • WordPress『wp_term_relationships』テーブル
    外部テーブルのサロゲートキーを集中管理

 

ターゲット系

例 プッシュ通知でのお知らせ

  • お知らせテーブル
  • お知らせターゲットテーブル

お知らせターゲットテーブルはお知らせidとお知らせするuser_idでの複合主キーになります。

 

noticesテーブル

 

notice_targetsテーブル

 

ポイント

先頭のnotice_idは暗黙のINDEXがかかるが、user_idにはINDEXが貼られない。

別途で定義する。

 

Laravelでの複合主キー

なかなか大変😇

INSERTはできるが、UPDATEやsave()で問題がでる。

作法としてサロゲートを使って欲しい模様。

 

頑張って対応

 

解決① クエリビルダを利用する

 

@see

 

解決策② Traitを利用する

 

@see

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)