テーブルをまとめることは悪いことですか?
悪いことだと思ってました。
まずはテーブルの分割について整理します
とりあえず、テーブル分割について2つの議論を整理しあす。
正規化
テーブル分割といえば正規化です。一言で言うとデータの重複を排除してデータの不整合を起こりづらくすることができます。
正規化こそ DB 設計の正義。インデクスさえ正しく設定できれば大勝利。正規化バンザイですね。
正規化はパフォーマンスとのトレードオフと位置付けられることが多いですが、適切にインデックスを張っていればだいたい回避できるらしいです。知らですが。
垂直分割
良くないです。テーブルの列で区切って、ID で join できるようにします。Web アプリケーションだと機能追加で発生しがちです。
テーブルを分割することでメモリに乗るデータを減らすことで高速化ができるというメリットもあるようだが、インデクスでを使うべきとのこと。
テーブルの垂直分割は悪なようです。後々困ります(私見)。
まとめ
- 正規化であればインデクスで頑張りましょう
- 垂直分割であればまとめてしまいましょう
参考文献 - 達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - 失敗から学ぶ RDB の正しい歩き方_