2011-02-14 1 views
3

나는 두 개의 테이블을 가지고있다. 나는 자동차 테이블이 있다고 말할 수 있으며, 모든 타입의 자동차를 사용할 수있는 다른 테이블을 사용할 수있다. (자동차 테이블에 여러 항목을 피하기 위해) TypesOFCar 테이블에서 자동차의 유형의 "목록/집합"을 가진 내 자동차 테이블의 제약 조건이 테이블에는 (Make, Model 등)이 포함되어 있습니다. 어떻게 보관할 수 있습니까?SQL 값 contrain to another table data

모듈 형으로 TypeOfCar 테이블에 다른 종류의 자동차를 추가 할 수 있으며 사전에 자동차 테이블에서 사용할 수있게됩니다.

답변

1

Cars 테이블에 CarType 열을 추가하고 TypeOfCar 테이블에 foreign key으로 만들려고합니다.

+0

Thx! 외래 키의 정의를 이해하지만 추가 코드가 필요하다고 생각했습니다! =) – Termiux

2

이 방법을 구현하는 가장 좋은 방법은 외래 키 제약 조건을 사용하는 것입니다. 나는 CarTypeId 컬럼에 Car 테이블의 CarType_Id 열을 매핑하는 외래 키 제약 조건을 만들고, 그 예를 들어 테이블에서

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 항목이 있어야 함을 강제합니다.

+0

위대한 대답은 매우 설명 적이기 때문에 정확히 내가 필요한 것입니다 =) – Termiux