QA@IT
«質問へ戻る

質問を投稿

カラム数が多すぎるテーブルの1対1関連での分割方法

お世話になります。

カラム数が200を超えるテーブルを複数扱う案件を受け持ちました。
あまりにも一つのテーブルにカラムが多すぎて、情報の場所やカラム名を見つけるのが大変なため、テーブルを分けたいと考えています。

実際のテーブル情報などは載せれないので似た例としてゲームの情報を扱うテーブルがあったとします。
今回は簡単ですが、このgenreについてもそれぞれたくさんの情報があると50を超えるカラムがあると考えてください。
__________2016-04-20_23.50.28.png

私が考える構成は以下のようなものです。
__________2016-04-20_23.30.53.png
game_information_genres、game_information_makersそれぞれにも50を超えるカラムがあるとします。

以下のようにgame_informationsテーブルでまとめなくても良いとは思うのですが、game_information_genres、game_information_makersのデータを一度にまとめて取得したいと言った時に簡単に取得できるので中間テーブル?としてgame_informationsテーブルも設置しました。
__________2016-04-20_23.54.22.png

この構成(2つ目の画像)は良い設計と言えるでしょうか?

私はこの構成だと以下の問題を持つと考えています。

  • テーブル名が長くなりすぎる
  • それに伴って、関連キーのカラム名が長くなりすぎる
  • SQL実行1回のコストが高くなる

しかし、メリットとして

  • 情報が視覚的に分かりやすくなる
  • 情報取得コードがシンプルになる(ActiveRecord)
  • 構成の変更がしやすい もあげれるのではないかと考えています。

非常にカラム数が多くカオスで、今後の保守・開発がスムーズに進むようにもっとも望ましい形にしたいと考えています。
皆様のお力を貸していただきたいです。
どうぞよろしくお願い致します。

お世話になります。

カラム数が200を超えるテーブルを複数扱う案件を受け持ちました。 
あまりにも一つのテーブルにカラムが多すぎて、情報の場所やカラム名を見つけるのが大変なため、テーブルを分けたいと考えています。

実際のテーブル情報などは載せれないので似た例としてゲームの情報を扱うテーブルがあったとします。 
今回は簡単ですが、このgenreについてもそれぞれたくさんの情報があると50を超えるカラムがあると考えてください。 
![__________2016-04-20_23.50.28.png](https://qa-atmarkit-image.s3.amazonaws.com/uploads/attached_image/image/177/__________2016-04-20_23.50.28.png)

私が考える構成は以下のようなものです。 
![__________2016-04-20_23.30.53.png](https://qa-atmarkit-image.s3.amazonaws.com/uploads/attached_image/image/178/__________2016-04-20_23.30.53.png)
game_information_genres、game_information_makersそれぞれにも50を超えるカラムがあるとします。

以下のようにgame_informationsテーブルでまとめなくても良いとは思うのですが、game_information_genres、game_information_makersのデータを一度にまとめて取得したいと言った時に簡単に取得できるので中間テーブル?としてgame_informationsテーブルも設置しました。 
![__________2016-04-20_23.54.22.png](https://qa-atmarkit-image.s3.amazonaws.com/uploads/attached_image/image/179/__________2016-04-20_23.54.22.png)

この構成(2つ目の画像)は良い設計と言えるでしょうか?

私はこの構成だと以下の問題を持つと考えています。

* テーブル名が長くなりすぎる
* それに伴って、関連キーのカラム名が長くなりすぎる
* SQL実行1回のコストが高くなる

しかし、メリットとして

* 情報が視覚的に分かりやすくなる
* 情報取得コードがシンプルになる(ActiveRecord)
* 構成の変更がしやすい
もあげれるのではないかと考えています。

非常にカラム数が多くカオスで、今後の保守・開発がスムーズに進むようにもっとも望ましい形にしたいと考えています。 
皆様のお力を貸していただきたいです。 
どうぞよろしくお願い致します。