てぃぐれのプログラマwiki

ワクワクに従う

SQLアンチパターン1 信号無視するな

SQLアンチパターン1

Bill Karwin著のSQLアンチパターンを心のノートに。

 

1, ジェイウォーク(信号無視) 交差テーブルを使え

多:1から多:多の関係にしたい。

じゃあ、カンマで区切って入れちゃおー

 →はい、アンチパターン

 

問題

・数値を文字列から検索しずらい。

・集約クエリしにくい

・更新しずらい等々。

・IDの長さによって入るデータが変わってくる。

 →IDが少ない人はたくさん入る

 

解決

・交差テーブルを使う。

 

 

感想

流石に、カンマ区切りで入れたことはないし、そのようなテーブルは見たことはない。

でもカラムナーとかはそういう世界なんだろうなとふと思った。

 

しかし、この本ではこのアンチパターンを絶対悪としては扱っていない。

そのようにせざるおえないケースの場合、上記のデメリットを踏まえたうえで、本当にそのやり方でいいのか考えて使おうと言っている。