我有一张桌子,让我们这么简单..:
CREATE TABLE Department(
[DepartmentId] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](128) NOT NULL
)
DepartmentId是表格部门的主键。
我有另一个名为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?
答案 0 :(得分:2)
这种类型的层次关系通常在一个表中完成,在Department
表的情况下(你应该考虑调用它Departments
,但这只是我的偏好)。无论如何,该图的可视示例如下: