繁体   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