sqlserver中的分层表与查询

sqlserver中的分层表与查询,sql,sql-server,Sql,Sql Server,我有一个场景如下: ManufacturerID Name 1 XXX 2 YYY DeptID Name ManufacturerID 1 abc 1 2 bcd 1 3 efg 2 ProductID name deptid 1 dfdfg 1 2 dfdg

我有一个场景如下:

ManufacturerID        Name
1                     XXX
2                     YYY

DeptID     Name  ManufacturerID
1          abc   1
2          bcd   1
3          efg   2

ProductID   name      deptid
1           dfdfg     1
2           dfdg      2
3           sdfsd     2

PartsID      name      productid
1            sdfs      1
2            sfdfs     2
3            sdd       1

我希望上面的表结构使用层次结构。如何设计表?

我无法理解您需要建立什么层次结构,但如果您使用的是sql server 2008,请查看数据类型。 请提供更多关于您的流程的描述。现在看起来很简单:


制造商有很多部门,部门有很多产品,产品有很多零件

我无法理解您需要建立什么层次结构,但如果您使用的是sql server 2008,请查看数据类型。 请提供更多关于您的流程的描述。现在看起来很简单:


制造商有很多部门,部门有很多产品,产品有很多零件

当我说Hierarchy时,我的意思是,这不取决于查询和格式化结果数据的方式吗?您的表结构在我看来很好。3个表意味着我需要插入联接。。如果我们可以在一个表中创建层次结构,那么我们就可以创建较小的联接,对吗?我怀疑您试图使用层次结构来解决错误的问题。如果希望在SQL中加入更少的连接,请考虑创建视图并查询视图。你的数据看起来很正常。当我说分层时,我的意思是,这不取决于你如何查询和格式化结果数据吗?您的表结构在我看来很好。3个表意味着我需要插入联接。。如果我们可以在一个表中创建层次结构,那么我们就可以创建较小的联接,对吗?我怀疑您试图使用层次结构来解决错误的问题。如果希望在SQL中加入更少的连接,请考虑创建视图并查询视图。你的数据看起来很正常。我看不出层次结构应该在哪里。看起来你只需要加入。典型的层次结构有一个引用回自身的表,通常有ID和ParentID列。我看不出层次结构应该在哪里。看起来你只需要加入。典型的层次结构有一个引用回自身的表,通常带有ID和ParentID列。