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