#mysql #constraints
#mysql #ограничения
Вопрос:
У меня есть таблица учетных записей и таблица клиентов. У учетной записи много клиентов. Имя клиента уникально для учетной записи, на которую оно ссылается. Это означает, что два клиента, принадлежащие к одной учетной записи, должны иметь уникальное имя. Как мне применить это ограничение? ниже приведена структура таблицы mysql.
Спасибо.
CREATE TABLE IF NOT EXISTS `sample`.`Account` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NULL,
`created_date` DATE NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `email_UNIQUE` (`email` ASC))
ENGINE = InnoDB
AUTO_INCREMENT = 0;
CREATE TABLE IF NOT EXISTS `sample`.`Customer` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
INDEX `account_fk_id_idx` (`account_id` ASC),
CONSTRAINT `account_fk_id`
FOREIGN KEY (`account_id`)
REFERENCES `sample`.`Account` (`id`)
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
AUTO_INCREMENT = 0;
Комментарии:
1. Определите именованные группы учетных записей и используйте идентификатор группы в таблице customer в качестве одного из внешних ключей.
Ответ №1:
Я думаю, вы хотите:
unique (account_id, name)
В Customer
таблице.
Комментарии:
1. Спасибо. Я попробую это.