0

我有如下表格:

+----------+---------+
| ParentId | ChildId |
+----------+---------+

目前,它是一对多的关系(一个父级,多个子级),主键是子级 ID,因为一个子级只能映射到一个父级(到目前为止都非常简单)。
我的问题现在出现了,但我想添加一个辅助列,如下所示:

+----------+---------+---------+
| ParentId | ChildId | Deleted |
+----------+---------+---------+

所以情况是,出于审计原因,我需要跟踪已删除父母的映射,我的想法是让 Child Id 唯一,如果 Deleted是错误的。问题是我如何实现这一目标?是否有可能或应该创建一个用于存档已删除条目的辅助表,是否有任何其他建议我可以如何实现这一目标或我可以采取的其他方法?

4

1 回答 1

1

我认为这是你的问题:

我的想法是让 Child Id 唯一,如果 Deleted 是错误的。问题是我如何实现这一目标?

如果是这样,您可以使用过滤的唯一索引:

create unique index unq_t_parent_child on t(parent, child)
    where isdeleted = 0;
于 2017-06-04T23:08:00.417 回答