1

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_main1他のすべてのユーザーのアドレスにはis_main = 0.

これは MySQL レベルで制限できますか?

ALTER TABLE user_address ADD UNIQUE INDEX is_main (is_main, user_id);いくつかのレコードがあるため、役に立ちませんでしたis_main=0...)

4

1 に答える 1