2011-02-14 42 views
3

我有幾個表,可以說我有一個汽車表,我有另一個表,其中包含所有類型的汽車(只是爲了避免在汽車表上的多個條目),所以我想我的汽車桌上有一個約束,這個表包含(製作,模型等)。我如何存檔這個。SQL值約束到另一個表數據

我希望它是模塊化的,所以我可以將另一種汽車添加到TypeOfCar表中,並且它可以在汽車表,thx中提前使用。

回答

1

您想要將CarType列添加到您的Cars表並將其設置爲您的TypeOfCar表的foreign key

+0

THX!我理解外鍵的定義,但我認爲我需要一些額外的代碼! =) – Termiux 2011-02-14 18:55:38

2

實現此目的的最佳方法是通過外鍵約束。從本質上講,你得到你的表等類

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列映射到CarTypeId列外鍵約束。此關係強制CarType項必須存在於Car表中指定的值。

+0

大答案非常描述性的,這正是我所需要的THX很多=) – Termiux 2011-02-14 18:56:46