Mysql

為特定情況定義復合唯一約束的可能性

  • March 10, 2021

我有兩張桌子:useraddress

使用者表:

地址表:

問題

想像某人為使用者設置了兩個預設地址;從業務邏輯的角度來看,這將是無意義的。

問題

我想創建一個由user_idis_default僅針對特定情況組成的唯一約束,即約束必須在is_defaultis時強制執行1

這可以用mysql嗎?

在表中添加一個user引用表的主鍵的外鍵列address。呼叫它default_address_id。這會強制執行唯一性,因為對於給定使用者,它一次只能有一個值。

然後刪除表is_default中的列,address因為它可能與表中的外鍵不一致user

引用自:https://dba.stackexchange.com/questions/286805