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`),
)
ユーザーあたりのアドレスの数は制限されていませんが、メイン ユーザーのアドレスを示すために、ユーザーごとに 1 回だけにしてくださいis_main
。1
他のすべてのユーザーのアドレスにはis_main = 0
.
これは MySQL レベルで制限できますか?
(ALTER TABLE user_address
ADD UNIQUE INDEX is_main (is_main, user_id);
いくつかのレコードがあるため、役に立ちませんでしたis_main=0
...)