Mysql
為特定情況定義復合唯一約束的可能性
我有兩張桌子:
user
和address
。使用者表:
地址表:
問題
想像某人為使用者設置了兩個預設地址;從業務邏輯的角度來看,這將是無意義的。
問題
我想創建一個由
user_id
且is_default
僅針對特定情況組成的唯一約束,即約束必須在is_default
is時強制執行1
。這可以用mysql嗎?
在表中添加一個
user
引用表的主鍵的外鍵列address
。呼叫它default_address_id
。這會強制執行唯一性,因為對於給定使用者,它一次只能有一個值。然後刪除表
is_default
中的列,address
因為它可能與表中的外鍵不一致user
。