Как определить ограничение unqiue в области внешнего ключа

#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. Спасибо. Я попробую это.