SQL SERVER relacja 1 do 1

0

Chce stworzyć relacje 1:1 pomiędzy tabelami Student, Address:
Po wygenerowaniu diagramu pokazuję mi dwie relacje między tymi tabelami 1:1 i 1:N. Dlaczego tak?
Nie da się by była to jedynie relacja 1:1 ?

Create Student
(
  StudentID int not null identity(1,1) PRIMARY KEY,
  Name varchar(20),
  SurName varchar(20),
  AddressID int
)

Create Address
(
  AddressID int not null identity(1,1) PRIMARY KEY,
  HouseNumber varchar(20),
  Street varcuar(20)
)

alter table Student
add constraint FK_Student_Address foreign key (StudentID)
references Address(AddressID)
0

Jakbyś chciał 1:1 to musiałbyś dać StudentID do tabeli Address

Create Address
(
  AddressID int not null identity(1,1) PRIMARY KEY,
  HouseNumber varchar(20),
  Street varcuar(20)
  StudentID int
)
2

Tak naprawdę to, żeby to było 1:1 to w tabeli Address, PK AddressID , powinien być również Foregin key z tabeli student czyli AdressID = studentID:

alter table Address
add constraint FK_Student_Address foreign key (AddressID)
references Student(StudentID)

Tym samym addressID nie może być identity:

Create table  Address
(
  AddressID int not null  PRIMARY KEY,
  HouseNumber varchar(20),
  Street varchar(20)
)

Sensu w tym osobiście nie widze, bo skoro masz jeden adres to po co go trzymać w innej tablei, ale w przeciwnym razie dodanie studentID i dodanie kolumny studentID i na niej zrobienie FK będzie 1:N

1 użytkowników online, w tym zalogowanych: 0, gości: 1