3つのテーブルの多対多の中間テーブルのベストプラクティス
「ユーザが何らかの役職でグループに属している」のような状況でデータベースを設計する場合、どのようにリレーションを設計するのがベストでしょうか。
案1
案2
LaravelのPivotモデルを使い中間テーブルから関係を取得するというページに載っていました。
案3
(UsersテーブルがVARCHARとかになってるのは特に意味ないです。)
- バリデーションすればいいので案1でいいのではないか
- 役職がたくさん増えないなら案3がいいのではないか
- 案2は正規化されているが、ORMでの操作が複雑化するのでよくないのではないか
など考えて、Eloquentとかと相性が良さそうな案3がいいのではないかと思いましたが、よくわかりません。
データベース設計の実務経験が乏しいので意見をお聞きしたいです。
よろしくお願いします。
0