シングル世代テーブルパターン
from Long Term Event Pattern
tableに適用開始日と適用終了日を持たせる設計
主キーは、idと適用終了日になる
これ単体で使うとかなりやりづらい
登録時に必ず適用開始日と適用終了日を指定しないといけない
例えば税率を加味したりすると、適用終了日なんて分かるはずがない
従って、NULLだったり、適当な未来の日付が入れられてしまう
SQLで取得する際に面倒
常に適用開始日と適用終了日のbetweeenを指定しないといけない
使っても良さげなケース
/kawasima/イミュータブルデータモデル#5e3a5f1da8e5b200009c0534
ここの図、販売予定価格に適用終了日とか要らなくない?mrsekut.icon
データを、過去と未来に分けて、過去の方だけをシングル世代テーブルパターンを使う
OrderLineが新規作成された時に、
PriceHistorytableのデータを見て(なければ作る)、それと紐付ける
「現在の価格」は普通にproducttableを見ればいい
価格を変更したいときは、producttableをそのまま更新するだけでいい
productの構造が複数種類ある場合は、history系のtableもそれだけ増えちゃう?
https://speakerdeck.com/kawasima/lu-li-wochi-tudetafalseshe-ji?slide=14
#??
『WEB+DB PRESS Vol.130』.icon p.28のシングル世代テーブルパターンの商品価格tableって何で「主キーが商品IDと適用開始日」の2つになるの?
p.29の図5では、「商品価格ID」を振っているように同じようにそうしたらなにか問題が起きるの?
図4と図5で商品価格tableの主キーが異なる理由がわからない
参考
/mrsekut-book-4774171972/206
ここでは悪い例として挙げられている
/mrsekut-book-4297104083/032