簡體   English   中英

SQL唯一鍵iff未刪除

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM