EAV
Entity Attribute Value
table:イメージ
id key value
1234 status "NEW"
1234 version "1.0"
1234 description "失敗する"
1235 status "NEW"
1235 name "hoge"
value columnの型は超汎用的にするためにstringにせざるを得ない
どれが必須の属性なのか判断できない
keyもtypoしうる
version、vesion
制約も加えづらい
NOT NULL制約
外部キー制約
『SQLアンチパターン』.iconではアンチパターンとして紹介されている
回避策
OR型をtable上でどう表現するか
Serialized LOB
参考
/mrsekut-book-4873115892/090 (5章 EAV (エンティティ・アトリビュート・バリュー))
OR型をtable上でどう表現するかの問題に対するアンチパターンとして紹介されている
/mrsekut-book-4297104083/105
/mrsekut-book-4297140101/288
EAVは別にアンチパターンでもない
https://en.wikipedia.org/wiki/Entity–attribute–value_model