SQL唯一键如果未删除



我的表如下:

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

这是一种一对多的关系(一个父母,多个孩子(,而主要的关键是子ID,因为孩子只能映射到一个父母(到目前为止都很直接(。
我的问题现在是我想添加一个辅助列,如下所示:

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

因此,出于审计原因,我需要保持跟踪,删除父母的映射,我的想法是使子ID与删除,是错误的。问题是我该如何实现?是否有可能或者应该创建一个我用来存档已删除条目的辅助表,任何其他建议我如何实现此方法或可以采用的另一种方法?

我认为这是您的问题:

我的想法是如果删除的删除是错误的。 问题是我该如何实现?

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

create unique index unq_t_parent_child on t(parent, child)
    where isdeleted = 0;

相关内容

  • 没有找到相关文章

最新更新