我有幾個表,可以說我有一個汽車表,我有另一個表,其中包含所有類型的汽車(只是爲了避免在汽車表上的多個條目),所以我想我的汽車桌上有一個約束,這個表包含(製作,模型等)。我如何存檔這個。SQL值約束到另一個表數據
我希望它是模塊化的,所以我可以將另一種汽車添加到TypeOfCar表中,並且它可以在汽車表,thx中提前使用。
我有幾個表,可以說我有一個汽車表,我有另一個表,其中包含所有類型的汽車(只是爲了避免在汽車表上的多個條目),所以我想我的汽車桌上有一個約束,這個表包含(製作,模型等)。我如何存檔這個。SQL值約束到另一個表數據
我希望它是模塊化的,所以我可以將另一種汽車添加到TypeOfCar表中,並且它可以在汽車表,thx中提前使用。
您想要將CarType列添加到您的Cars表並將其設置爲您的TypeOfCar表的foreign key。
實現此目的的最佳方法是通過外鍵約束。從本質上講,你得到你的表等類
CREATE TABLE dbo.CarType
(
[Id] INT NOT NULL DEFAULT(1, 1),
[Description] VARCHAR(255) NOT NULL
CONSTRAINT PK_CarType PRIMARY KEY NONCLUSTERED ([Id])
)
CREATE TABLE dbo.Car
(
[Id] INT NOT NULL DEFAULT(1, 1),
[Registration] VARCHAR(7) NOT NULL,
[CarType_Id] INT NOT NULL
CONSTRAINT PK_Car PRIMARY KEY NONCLUSTERED ([Id]),
CONSTRAINT FK_Car_CarType_Id FOREIGN KEY ([CarType_Id]) REFERENCES dbo.CarType ([Id])
)
在這些例子表中,我創建了Car
表的CarType_Id
列映射到CarType
的Id
列外鍵約束。此關係強制CarType
項必須存在於Car
表中指定的值。
大答案非常描述性的,這正是我所需要的THX很多=) – Termiux 2011-02-14 18:56:46
THX!我理解外鍵的定義,但我認爲我需要一些額外的代碼! =) – Termiux 2011-02-14 18:55:38