Sollte ein Fremdschlüssel erstellt werden, die auf die übergeordnete Tabelle oder child-Tabelle?

Was ist der Unterschied? Wenn ich diese beiden Tabellen:

CREATE TABLE Account (Id int NOT NULL)

CREATE TABLE Customer (AccountId int NOT NULL)

Und ich will eine Fremdschlüssel-Verknüpfung der beiden, welches der folgenden soll ich tun und warum?

Option 1:

ALTER TABLE [dbo].[Customer]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([AccountId])
  REFERENCES [dbo].[Account] ([Id])

Option 2:

ALTER TABLE [dbo].[Account]  WITH CHECK 
  ADD  CONSTRAINT [FK_Accounts_Customers] FOREIGN KEY([Id])
  REFERENCES [dbo].[Customer] ([Id])
  • Ich in der Regel legen Sie es auf eine Tabelle, die nicht Leben kann ohne die andere (wenn das zutrifft). Aber es wird davon abhängen, was auch immer Ihre Abfragen einfacher, was mehr Sinn macht, von einem Daten-konzeptioneller Sicht... und diese zwei whatevers kann sein gegenüber auch.
InformationsquelleAutor scottm | 2013-02-21
Schreibe einen Kommentar