履歴、世代、そして削除についての究極の疑問の答え
履歴や世代、データの削除すべてをリレーショナルデータベースだけで扱う方法。実用上はオーバーキルになることも多いと思われるので、あくまでもインデックスを効かせ整合性制約をすごくちゃんとやるとしたらこうなるよ、程度の知識として捉えてください。
前提
イミュータブルデータモデルでいうところのリソースに関する話です。まずは雑に「履歴」テーブルと考えていれば、先にリソースに隠されたイベントを抽出することを実施します。
モデル
以下のような多対多のユーザとグループの簡単なモデルを考える。