Одним из них является отношение ко многим в студии управления SQL Server. - PullRequest
0 голосов
/ 13 февраля 2012

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

И почему в моей диаграмме отношения перевернуты, вот посмотрите

enter image description here

Это должно быть наоборот, как бы я это сделал?

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012

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

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

2 голосов
/ 13 февраля 2012

Честно говоря, я бы не стал пытаться заставить интерфейс пользователя соответствовать вашим требованиям. Вместо этого давайте изучим немного DDL!

CREATE TABLE dbo.People
(
  PeopleID INT IDENTITY(1,1) PRIMARY KEY,
  FirstName NVARCHAR(32)
  --, LastName, etc.
);

CREATE TABLE dbo.Address
(
  AddressID INT IDENTITY(1,1) PRIMARY KEY,
  PeopleID INT NOT NULL FOREIGN KEY 
    REFERENCES dbo.People(PeopleID),
  Address VARCHAR(255)
  --, other columns
);

Пример данных по населению. Допустим, вы хотите добавить нового человека по имени Боб, у которого есть два адреса.

DECLARE @PeopleID INT;

INSERT dbo.People(FirstName) SELECT N'Bob';

SELECT @PeopleID = SCOPE_IDENTITY();

INSERT dbo.Address(PeopleID, Address) SELECT @PeopleID, '255 Hemlock Lane';
INSERT dbo.Address(PeopleID, Address) SELECT @PeopleID, '345 Hutcheson Ave';
...