1

私はテーブルを持っています、それを簡単にしましょう..:

CREATE TABLE Department(
    [DepartmentId] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](128) NOT NULL
)

DepartmentId は、テーブル Department の主キーです。

DepartmentRelation という別のテーブルがあります。

CREATE TABLE DepartmentRelation(
    [DepartmentRelationId] [int] IDENTITY(1,1) NOT NULL,
    [ParentDepartmentId] [int] NOT NULL,
    [ChildDepartmentId] [int] NOT NULL  
)

DepartmentRelationId は、テーブル DepartmentRelation の主キーです。

次に、2 つの外部キーを定義する必要があります。1 つは ParentDepartmentId 用で、もう 1 つは ChildDepartmentId 用で、それぞれが Department.DepartmentId を指しています。

私の質問は、親列と子列の間に別の外部キーを追加する必要がありますか? たとえば、子から親への fk を定義しますか?

4

1 に答える 1

2

このタイプの階層関係は通常、1 つのテーブルで行われます。あなたの場合はテーブルで行われDepartmentます (それを呼び出すことを検討する必要がありますDepartmentsが、それは私の好みです)。とにかく、この図の視覚的な例は次のとおりです。

ここに画像の説明を入力

于 2013-04-02T19:00:39.877 に答える