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 的主键。

现在我需要定义两个外键,一个用于 ParentDepartmentId,另一个用于 ChildDepartmentId,每个都指向 Department.DepartmentId。

我的问题是,我是否也应该在父列和子列之间添加另一个外键?例如定义一个从孩子到父母的fk?

4

1 回答 1

2

这种类型的层次关系通常在一个表中完成,在你的情况下是在Department表上(你应该考虑调用它Departments,但这只是我的偏好)。无论如何,该图的可视化示例如下:

在此处输入图像描述

于 2013-04-02T19:00:39.877 回答