0

私は2つのテーブルを持っています:

**FamilyHeads**
HeadID   | HeadName      


**FamilyMembers**
MemberID  |  MemberName      

ここで、家族の頭が存在する場合、家族のメンバーのみを FamilyMembers テーブルに挿入できるようにしたいと考えています。このために、FamilyMembers テーブルにも HeadID 列を含め、FamilyHeads テーブルから参照する必要があります。またはこれに対する解決策は何ですか。主キーと外部キーを使用する必要があることはわかっていますが、実装についてはわかりません。コードを手伝ってください。

4

1 に答える 1

1

主キーを追加する

ALTER TABLE FamilyHeads WITH CHECK ADD
     CONSTRAINT PK_FamilyHeads PRIMARY KEY CLUSTERED (HeadID)
GO
ALTER TABLE FamilyMembers WITH CHECK ADD
     CONSTRAINT PK_FamilyMembers PRIMARY KEY CLUSTERED (MemberID)
GO

外部キーの列を追加する

--Same datatype, NOT NULL!
ALTER TABLE FamilyMembers ADD
    HeadID int NOT NULL
GO

FKを追加

ALTER TABLE FamilyMembers WITH CHECK ADD
     CONSTRAINT FK_FamilyMembers_FamilyHeads FOREIGN KEY (HeadID)
            REFERENCES FamilyHeads (HeadID)
GO

重複するHeadNameを使用できますか?いいえの場合

ALTER TABLE FamilyHeads WITH CHECK ADD
     CONSTRAINT UQ_FamilyHeads_HeadName UNIQUE (HeadName)
GO

はいの場合、どのメンバーをどのヘッドに追加するかをどのようにして知ることができますか?

そして、HeadIDのFamilyMembersに一意でないインデックスを追加します

于 2011-03-23T06:02:43.420 に答える