Ich möchte die ordnungsgemäße Behandlung von Fremdschlüsseln in der Tabelle überprüfen. Hier sind meine zwei Tabellen, die unten erstellt werden. Es ist möglich, dass eine Person keine Adresse hat, also möchte ich, dass sie null ist. Ansonsten würde ich gerne einen Primärschlüssel aus der Adresstabelle referenzieren und ihn als Fremdschlüssel in der Personentabelle ablegen. Es ist auch möglich, dass wir ein Adressobjekt ohne eine Person haben.SQL Server Tabelle mit Fremdschlüssel erstellen
Tabelle für eine Person:
CREATE TABLE Person
(
PersonID int IDENTITY PRIMARY KEY,
FName varchar(50) NULL,
MI char(1) NULL,
LName varchar(50) NULL,
AddressID int FOREIGN KEY REFERENCES Address(AddressID) NULL,
)
Tisch Adresse:
CREATE TABLE Address
(
AddressID int IDENTITY PRIMARY KEY,
Street varchar(60) NULL,
City varchar(50) NULL,
State varchar(2) NULL,
Zip varchar(10)NULL,
Intersection1 varchar(60) NULL,
Intersection2 varchar(60) NULL,
)
Auch Q2 Ich habe noch nie mit Trigger gearbeitet, aber ich gehe davon aus, die Art und Weise, einen Einsatz zu handhaben wäre ein zu verwenden, gespeicherte Prozedur zum Einfügen der Adresse zuerst, erhalten Sie den Primärschlüssel, dann übergeben Sie es an eine gespeicherte Prozedur, um in die Personentabelle einzufügen?
Sieht gut für mich aus, obwohl "Adresse" zuerst erstellt werden sollte. –
Sind Sie sicher, dass dieses Design erforderlich ist? Wie viele Leute haben die gleiche Adresse? Das wäre der einzige Grund, warum Sie einen Fremdschlüssel für eine Adresstabelle benötigen. Ansonsten verwende einfach die PersonID als PK in deiner Adressentabelle. –
Stimmen Sie mit @ElectricLlama überein. Vielleicht möchten Sie das Design in Betracht ziehen. Normalerweise würden Sie die PersonID in die Adresstabelle aufnehmen und auf diese Weise mit der Tabelle "Person" referenzieren, und im wirklichen Leben kann eine Person mehrere Adressen haben. – Elmer