在 MySQL db 中,我有一个包含用户地址的表:
CREATE TABLE `user_address` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`user_id` INT(10) NOT NULL,
`street` VARCHAR(50) NULL DEFAULT NULL,
`number` VARCHAR(255) NULL DEFAULT NULL,
`city` VARCHAR(255) NULL DEFAULT NULL,
`zip` VARCHAR(255) NULL DEFAULT NULL,
`is_main` TINYINT(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
)
每个用户的地址数量没有限制,但我希望每个is_main
用户1
只有一次,以指示主要用户的地址。所有其他用户的地址将具有is_main = 0
.
这可以在 MySQL 级别上受到限制吗?
(ALTER TABLE user_address
ADD UNIQUE INDEX is_main (is_main, user_id);
没有帮助,因为有几条记录is_main=0
...)