внешний ключ в базе данных - PullRequest
0 голосов
/ 10 марта 2011

Я использую linq to sql .dbml,

Могу ли я узнать, каков наилучший способ добавить ограничение внешнего ключа в базу данных?ALTER TABLE Staffs Add CONSTRAINT fk_Staffs FOREIGN KEY(UserId) REFERENCES Users(Id);

Я могу написать это без проблем.Но когда моя таблица базы данных увеличивается, мне трудно поддерживать иностранный скрипт Add Constraint.Каждый раз, когда у меня есть несколько обновлений для столбцов базы данных, я ломаю голову над обновлением сценария alter table.

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

Или я должен написать сценарий изменения и обновлять его всякий раз, когда происходят изменения в таблицах?пожалуйста, совет

Ответы [ 2 ]

1 голос
/ 10 марта 2011

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

Компромисс может заключаться в том, чтобы использовать конструктор для внесения изменений, а в SQL Management Studio щелкните правой кнопкой мыши и выберите «Объект сценария ...».Чем вам не нужно набирать так много.

Вы упоминаете об изменении имен таблиц.Ну, это не должно случаться так часто!

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

1 голос
/ 10 марта 2011

Это нужно делать только один раз для каждого обновления базы данных, которое фактически меняет отношение FK.
В контексте рефакторинга базы данных это обычно не имеет большого значения для всего рефакторинга.

Но если вам не нравится писать свои сценарии, вы можете использовать конструктор таблиц в SQL Management Studio.

  1. Таблица правого клика -> Дизайн
  2. Щелкните правой кнопкой мыши по столбцу подходящей базы данных (одна из строк в конструкторе) -> Отношения
  3. В диалоговом окне добавьте новое отношение и выберите связанные таблицы и столбцы в редакторе свойств.
  4. Готово.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...