主張の矛盾を許容することなんじゃないかと思い始めた。 以前から履歴管理をするリソースってどういうモデル設計にすれば良いのか悩んでいたのだけど、なんとなく解決策が見えてきた。 まず重要なのがID。IDは実装技術なのだけど、この履歴管理するリソースを扱う際には非常に重要。まず、例として商品マスタを考える。要件としては次のような感じ。 当時のイベントからは当時の商品名が参照できること 特定の日付時点での商品名が引けること 単なる間違いは直接修正したい 利用開始日より前にマスタを登録するが、期日が来るまで有効にならないこと 利用終了日が設定できる コードを変更しても串刺し検索が可能 まず、1番目はイベントにIDを付けておくだけで良いので、次のようなテーブルにすれば問題は解決する。 ID 商品コード 商品名 1 A001 おでん100% 次に「特定の日付時点での商品を引く必要がある」ので、少なくとも