Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SQLアンチパターンから学ぶテーブル設計

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 SQLアンチパターンから学ぶテーブル設計

Avatar for あけの

あけの

May 28, 2022
Tweet

More Decks by あけの

Other Decks in Programming

Transcript

  1. SQLアンチパターン リレーショナルデータベースを使う際のアンチパターンP B 論理設# B 物理設# B クエ B アプリケーション

    の4種類、25パターン 実際に出会ったパターンをピックアップして紹介 (スマホでスキャンしたので画像が雑です)
  2. Entity Attribute Value 基本的には向いてないので、ある程度の種類に絞れる場合を考える シングルテーブル継’ e ひたすらカラムを増やb e NULLが入るカラムが多くなる 具象テーブル継’

    e テーブルを完全に分けV e 共通データとして扱いづらい クラステーブル継’ e 共通部と個別部のテーブルを分けV e 共通部の切り出しが難しい・参照が面倒
  3. Entity Attribute Value / ポリモーフィック 経験談と感想 KVSの形はマスターデータを保存する場合はありだと思う EAVはなんだかんだ見ることが多いが、コメントなしでは誰も読めないことも多い →できる限り避けていきたい気持ち 商品と特定の属性が追加された商品のパターンは見たことがある

    メタデータがデータに混入する問題・柔軟性は怖い ORMを使ったら実装していいって書いてるけど、それでも辛かった 結局用途に寄るのだが、シングルテーブルorクラステーブルを使いたくなる