我在我的数据库中添加了一个历史表。最初我添加了一个名为 Deleted 的位,如果该行被删除,则打算将其更新为 1,否则每一行都是一个更新。
然后我被告知我们需要记录谁删除了什么时间。所以我添加了 Nullable [DeletedBy] [DeletedOn] 字段。在这一点上,我想知道这是否使我的 Deleted Bit 变得多余。您可以简单地查询表,如果要查看删除了哪一行,则检查 DeletedBy 不是 Null 的位置。
我打算在这个问题上问哪个是更好的做法:
拥有额外的位列
使用已经存在的可为空列来识别已删除的行
但我开始认为这是一种偏好。所以我的问题是,哪个更有效?如果这个表变得很大,运行是否有性能提升:
Select * from MyTable where [Deleted] = 1
超过
Select * from MyTable where [DeletedBy] is not null