お世話になります。
カラム数が200を超えるテーブルを複数扱う案件を受け持ちました。
実際のテーブル情報などは載せれないので似た例としてゲームの情報を扱うテーブルがあったとします。
今回は簡単ですが、このgenreについてもそれぞれたくさんの情報があると50を超えるカラムがあると考えてください。
私が考える構成は以下のようなものです。
game_information_genres、game_information_makersそれぞれにも50を超えるカラムがあるとします。
以下のようにgame_informationsテーブルでまとめなくても良いとは思うのですが、game_information_genres、game_information_makersのデータを一度にまとめて取得したいと言った時に簡単に取得できるので中間テーブル?としてgame_informationsテーブルも設置しました。
この構成(2つ目の画像)は良い設計と言えるでしょうか?
私はこの構成だと以下の問題を持つと考えています。
- テーブル名が長くなりすぎる
- それに伴って、関連キーのカラム名が長くなりすぎる
- SQL実行1回のコストが高くなる
しかし、メリットとして
- 情報が視覚的に分かりやすくなる
- 情報取得コードがシンプルになる(ActiveRecord)
- 構成の変更がしやすい
もあげれるのではないかと考えています。
非常にカラム数が多くカオスで、今後の保守・開発がスムーズに進むようにもっとも望ましい形にしたいと考えています。
皆様のお力を貸していただきたいです。
どうぞよろしくお願い致します。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。