[英]SQL Unique Key iff not Deleted
我有如下表:
+----------+---------+
| ParentId | ChildId |
+----------+---------+
目前,這是一對多的關系(一個父母,多個孩子),因為孩子的身份只能映射到一個父母(到目前為止都很簡單),所以主鍵是孩子的ID。
我的問題現在出現了,我想添加第二列,如下所示:
+----------+---------+---------+
| ParentId | ChildId | Deleted |
+----------+---------+---------+
因此,由於審計原因,我需要保持跟蹤,刪除父母的映射,我的想法是使Child Id唯一(如果Deleted是錯誤的)。 問題是我該如何實現? 是否可以或者應該創建一個用於存儲已刪除條目的輔助表,是否還有其他建議建議我如何實現此目的或可以采用的另一種方法?
我認為這是您的問題:
我的想法是使Child Id唯一,如果Deleted是錯誤的。 問題是我該如何實現?
如果是這樣,則可以使用過濾后的唯一索引:
create unique index unq_t_parent_child on t(parent, child)
where isdeleted = 0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.