SQLアンチパターン その1.ジェイウォーク(信号無視) | 日々ログ

日々ログ

頑張りすぎないように頑張る

【発生場面】
多対多のテーブル関係がある場合
【内容】
1つの項目内に、カンマ区切りで複数の値を格納してしまう
【問題点】
・where句やjoin句でその項目を使う場合、複雑な文になってしまう
・count、sumといった関数が使えない
・その項目をUPDATEする際、複雑な文になってしまう
・型を保障できない(数値項目だったとしても、文字型で定義されるので文字が混じる可能性がある)
・項目のサイズによって格納できる値の数が制限される
【解決策】
多対多のテーブル関係がある場合は、交差テーブルを使う