これスマートな気がするんですよね。削除日時みたいに、削除テーブル側にだけ必要な列もあるでしょうし
“論理削除は、実際に運用していくとツラい。元を辿ると、ライフサイクルの異なる状態を 1 つのテーブルに同居させているところが原因では。 在籍中のユーザーと退会済みのユーザーでは、扱う情報も参照頻度も違う”
なるほどPartial Indexか
いいと思う
論理削除は削除じゃない!!!!!RemovedXXXというエンティティに状態遷移してるんだ!!!!!!!!
削除済みかどうかに関係なくソートしたい場合はパフォーマンスに影響しないのかな、状態別テーブルの方。
とても良いと思います。
“状態を判別子として外部キーに組み込んでしまうと、トリガーなしで保証できるようになります。” なるほど
参照している側は常に2つのテーブルを見ることになったりしないんだろうか。両側を同時に見たいというニーズが少ないのならいいんだけど。あとやはりテーブルの総数は増えるね。
論理削除をやめて状態をテーブルで分けるDB設計
これスマートな気がするんですよね。削除日時みたいに、削除テーブル側にだけ必要な列もあるでしょうし
“論理削除は、実際に運用していくとツラい。元を辿ると、ライフサイクルの異なる状態を 1 つのテーブルに同居させているところが原因では。 在籍中のユーザーと退会済みのユーザーでは、扱う情報も参照頻度も違う”
なるほどPartial Indexか
いいと思う
論理削除は削除じゃない!!!!!RemovedXXXというエンティティに状態遷移してるんだ!!!!!!!!
削除済みかどうかに関係なくソートしたい場合はパフォーマンスに影響しないのかな、状態別テーブルの方。
とても良いと思います。
“状態を判別子として外部キーに組み込んでしまうと、トリガーなしで保証できるようになります。” なるほど
参照している側は常に2つのテーブルを見ることになったりしないんだろうか。両側を同時に見たいというニーズが少ないのならいいんだけど。あとやはりテーブルの総数は増えるね。