簡體   English   中英

如何在布爾值上創建唯一約束2列?

[英]How can I create a unique constraint 2 columns on Boolean Values?

我有一個表,名稱為address_book。

我有字段id,user_id,......,default_address,address_type

address_type為布爾值(0:交貨地址-1:發票地址)default_address為boolean(0:非默認地址-1:默認地址)

認為一家公司有8個地址。 五個地址用於交貨,三個地址用於發票。

但同時,只有一個默認值取決於address_type。 一個默認的交貨地址,一個默認的發票地址。

如果我查詢此語句

alter table address_book add unique index(default_address, address_type)

這是不合邏輯的。

id | user_id | default_address | address_type|
.. |   ..    |                 |             |
.. |   ..    |                 |             |
.. |   ..    |                 |             |
----------------------------------------------
12 |   10    |       1         |       1     |
----------------------------------------------
13 |   10    |       0         |       1     |
----------------------------------------------
14 |   10    |       0         |       1     |
----------------------------------------------
15 |   10    |       1         |       0     |
----------------------------------------------
16 |   10    |       0         |       0     |
----------------------------------------------
17 |   10    |       0         |       0     |

在這種概念下,每個用戶最多可以使用2個default_address,一個是發票,一個是交貨地址。

我該如何使用唯一索引來驗證這種情況。

如何添加兩個新表,一個用於默認發票地址,另一個用於默認傳遞。 然后,您對這兩個表的約束將只是address.id和user.id。 主鍵是兩個字段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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