SQLアンチパターン1 信号無視するな
Bill Karwin著のSQLアンチパターンを心のノートに。
1, ジェイウォーク(信号無視) 交差テーブルを使え
多:1から多:多の関係にしたい。
じゃあ、カンマで区切って入れちゃおー
→はい、アンチパターン
問題
・数値を文字列から検索しずらい。
・集約クエリしにくい
・更新しずらい等々。
・IDの長さによって入るデータが変わってくる。
→IDが少ない人はたくさん入る
解決
・交差テーブルを使う。
感想
流石に、カンマ区切りで入れたことはないし、そのようなテーブルは見たことはない。
でもカラムナーとかはそういう世界なんだろうなとふと思った。
しかし、この本ではこのアンチパターンを絶対悪としては扱っていない。
そのようにせざるおえないケースの場合、上記のデメリットを踏まえたうえで、本当にそのやり方でいいのか考えて使おうと言っている。