存储分层数据的最有效方法

时间:2014-03-07 14:12:45

标签: sql sql-server

我想在SQL Server中存储分层数据,我想知道最有效的方法是什么。

示例数据集将是:

Department Manager #1
  Product Manager #1
    Team Leader #1
      Team Member #1
      Team Member #2
      Team Member #3
    Team Leader #2
      Team Member #1
      Team Member #2
      Team Member #3

etc...

2 个答案:

答案 0 :(得分:3)

Person Table
- ID
- ParentID

优点:

  • 您可以支持无限深度
  • 易于编辑

缺点:

您还需要添加一项检查,以确保一个人不能成为自己的父(ID和父ID对于特定记录不能相同),否则您将在查询数据时遇到一些严重问题。

答案 1 :(得分:0)

最常见的答案是将每个对象类型存储在不同的表中,因此根据您的数据,您需要: 1表部门经理 1产品经理表 1个团队负责人表 1个团队成员表。

在Team Members表中,yuo需要为每个其他表提供一个外键。您还可以将所有数据保存在同一个表中,但您可能会有重复的数据。 希望这有帮助。