Подтвердить что ты не робот

Как создать диаграмму SQL-сервера отношения один к одному

Кто-нибудь знает, как создать отношения "один-к-одному" из диаграммы базы данных SQL Server?

4b9b3361

Ответ 1

Вам нужно поставить unique key constraint on top of the foreign key, поэтому его ограничить одним отношением.

Ответ 2

Предполагая, что вы используете Sql Server 2008 и SSMS.

  • Самый простой способ сделать это - просто захватить ключ из основной таблицы на поверхности конструктора и отбросить ключ над вторичной таблицей непосредственно над первичным ключом.
  • Через секунду откроется два диалоговых окна, в активном диалоговом окне подтвердите, что две клавиши, участвующие в процессе перетаскивания, на самом деле являются P.Ks в соответствующих таблицах и нажмите O.K.
  • Наконец, подтвердите во вторых таблицах любые ограничения и любые другие параметры, которые вы хотели бы применить как каскадные функции и т.д.

Как только вы снова нажмете O.K еще раз, SSMS Designer покажет ключ к ключевому соотношению между задействованными таблицами. Это одноразовое отношение. Прочитайте как, одна запись в одной таблице напрямую связана с другой записью в другой таблице.

i.e A ResolutionsTable - 1:1 - Типы разрешений Прочитайте, как одна резолюция применяется к одному типу разрешения, то есть к делу закрытому или к делу, к изменению дела в ожидании, в случае отказа? Конечно, у людей разные навыки проектирования БД, поэтому работа для одного может не работать для другого разработчика db. Тем не менее, этот пример достаточно ясен, чтобы понять.

Надеюсь, это поможет любому синтаксису синтаксиса, отличному от SQL, как я, который предпочитает строить всю базу данных с помощью функции диаграммы базы данных SQL.

Ответ 3

если ваша таблица создана таким образом,

CREATE TABLE tableName (
   id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableName] PRIMARY KEY(id)
      , fkId INT NOT NULL
           CONSTRAINT[FK:tableName:tableFk]
           FOREIGN KEY(fkId)
           REFERENCES tableFk(id)
)

CREATE TABLE tableFk (
   id INT NOT NULL IDENTITY(1,1) CONSTRAINT[PK:tableFk] PRIMARY KEY(id)
)

вы можете изменить имя таблицы с помощью этого кода, чтобы установить tableName.fkId как уникальный

ALTER TABLE tableName
    ADD UNIQUE (fkId)

Ответ 4

Вы можете легко использовать MSSQL Management Studio.

ie

table_user

UID (рк) имя пользователя электронная почта

table_profile

PID (рк) f_name l_name user_id (fk)

  • Щелкните правой кнопкой мыши по user_id (fk).
  • Индексы/Ключи...
  • вы можете получить окно Indexes/Keys.

затем следуйте этому примеру,

4 Выберите "Добавить" (из окна "Индексы/ключи", он добавит новое имя)

5 В разделе "Общий раздел" выберите "Столбцы", а затем выберите "user_id"

6 В разделе "Общий раздел" установите "Уникально" как истинный

7 В разделе "Identity" укажите имя (Name). в этом случае я дам UK_user_id_profile

8 после всех этих шагов, закройте окно "Индексы/ключи"

9 Перетащите "uid" (из таблицы пользователя) в "user_id" (из таблицы профилей)

Вот и все.

Теория этого внешнего ключа должна быть уникальной.

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

Вот что сказал Азам в своем посте.

[В случае, я использую MSSQL 2012]

Приветствия.

Ответ 5

Я считаю, что вопрос был конкретно о том, как создать отношение "один к одному" в окне "Диаграмма диалогов SQL Server Management Studios". У меня есть процедура, в которой вы можете создать отношение "один к одному" в диаграмме базы данных SQL Server Management Studio.

  • Создайте две таблицы (A и B), оставьте таблицу B без первичного ключа.
  • Перетащите отношение из таблицы Первичный ключ в столбец с таблицей B (любой столбец соответствующего типа, любое имя) (изначально будет создано отношение "один ко многим"
  • Сохраните диаграмму (Если вы не сохраните здесь, скорее всего, вы столкнетесь с конфликтом в изменении script)
  • Перейдите в таблицу B и щелкните правой кнопкой мыши столбец и установите его как первичный ключ (это изменит отношение к индивидуальному)
  • Сохранить диаграмму

Вы закончили!

Ответ 6

Это очень просто, когда вы используете следующее:

ALTER TABLE [Salary]
ADD CONSTRAINT FK_Salary_Employee FOREIGN KEY([EmployeeID]) 
    REFERENCES [Employee]([ID]);

Это должно сработать !!!