Можно ли ссылаться на один и тот же внешний ключ в нескольких столбцах в MySQL? - PullRequest
1 голос
/ 23 сентября 2019

В настоящее время я пытаюсь настроить базу данных, в которой есть таблица «вопрос» и «ответ».

Они выглядят так:

ответ:

answer_id : PK int
answer_text : varchar

вопрос:

question_id : PK int
question_text: varchar
correct_answer : FK answer.answer_id
incorrect_answer1 : FK answer.answer_id
incorrect_answer2 : FK answer.answer_id
incorrect_answer3 : FK answer.answer_id

моя проблема в том, что я не могу ссылаться на один и тот же внешний ключ (answer_id) для более чем одного столбца в моей таблице вопросов, любая помощь будет оценена.

Ниже приведена ошибка:

ERROR 1215: Cannot add foreign key constraint
SQL Statement:
ALTER TABLE `hons_proj`.`question` 
ADD CONSTRAINT `answers fk`
  FOREIGN KEY (`correct_answer` , `incorrect_answer1` , `incorrect_answer2` , `incorrect_answer3`)
  REFERENCES `hons_proj`.`answer` (`answer_id` , `answer_id` , `answer_id` , `answer_id`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION

и использованный оператор CREATE TABLE:

'question', 'CREATE TABLE `question` (\n  `question_id` int(11) NOT NULL AUTO_INCREMENT,\n  `category_id` int(11) NOT NULL,\n  `correct_answer` int(11) NOT NULL,\n  `incorrect_answer1` int(11) NOT NULL,\n  `incorrect_answer2` int(11) NOT NULL,\n  `incorrect_answer3` int(11) NOT NULL,\n  `is_active` tinyint(4) NOT NULL,\n  `question_text` varchar(64) NOT NULL,\n  PRIMARY KEY (`question_id`),\n  UNIQUE KEY `question_text_UNIQUE` (`question_text`),\n  KEY `category fk_idx` (`category_id`),\n  KEY `answers fk_idx` (`correct_answer`,`incorrect_answer1`,`incorrect_answer2`,`incorrect_answer3`),\n  CONSTRAINT `category fk` FOREIGN KEY (`category_id`) REFERENCES `category` (`category_id`) ON DELETE NO ACTION ON UPDATE NO ACTION\n) ENGINE=InnoDB DEFAULT CHARSET=latin1'

Пожалуйста, игнорируйте \ n's.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...