Попытка проверить понимание внешних ключей SQL Server - PullRequest
1 голос
/ 18 апреля 2010

Итак, я работаю над учебным проектом, чтобы разобраться в том, что я не могу делать на работе. Я просто делаю простое приложение для отслеживания ошибок и кейсов (я знаю, что есть миллион, это просто работа с некоторыми инструментами, к которым я не попадаю). Поэтому я проектировал свою базу данных и понял, что никогда ранее не использовал Foreign Keys ни в одном из своих проектов, я использовал их раньше, но никогда не устанавливал столбец как FK. Поэтому я разработал свою базу данных следующим образом, что, я думаю, близко к правильному (по крайней мере, для первоначального макета). Образ базы данных http://drop.io/download/public/uurp1vxej0abpwu7jsee/895663dedff577359b900cda1726f115b24be90c/Asset/28368622/v3/large_thumbnail

Однако, когда я пытаюсь добавить FK в связывающие таблицы, я получаю сообщение об ошибке: «Таблицы, присутствующие в отношении, должны иметь одинаковое количество столбцов». Я делаю это в SQLSMS, перейдя в папку «Ключи» и добавив FK. Есть ли что-то, что я делаю здесь неправильно, я не понимаю, почему таблицы должны иметь одинаковое количество столбцов, чтобы добавить отношение FK между таблицами?

1 Ответ

0 голосов
/ 18 апреля 2010

При определении отношения внешнего ключа необходимо указать четыре вещи:

  • Таблица ссылок (таблица внешних ключей)
  • Столбцы из ссылающейся таблицы, которые будут формировать внешний ключ.
  • Указанная таблица (таблица первичного ключа)
  • Столбцы из приведенной таблицы, которые образуют ключ.

Я предполагаю, что вы выбрали один из вышеперечисленных объектов неправильно - возможно, вы забыли, что вам нужно дважды указать столбец, связанный с отношением - один раз для каждой таблицы.

Вот скриншот того, как это должно выглядеть - обратите внимание, что столбец указан дважды. В моем примере столбцы имеют немного разные имена, чтобы продемонстрировать, что им не всегда нужно иметь одинаковые имена, но в вашем случае имена столбцов будут одинаковыми.

image

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