我刚刚参加了一次面试,面试官向我提出了一个问题,其中包括这个场景和一些示例数据:
A
是 B
、C
和 D
的老板。
D
是 E
和 F
的老大。
那么F
是G
和H
的老大,即我们有分层数据。
换句话说,我们可以说有项目经理、团队领导,然后是开发人员。现在我们要创建表来存储数据。
此外,开发人员以后可以成为项目经理。
那么我们应该如何创建表呢?该表应包含哪些列?
我的答案是:
我们应该为项目经理准备一张表,其中包含 PM_ID
和 PM_Name
列,其中 PM_ID
是主键。然后我们应该为团队领导者创建另一个表。在该表中,我们应该将 TL_ID
作为主键,将 TL_Name
和 PM_ID
作为外键。
然后我们应该创建开发人员表,其中我们应该将 D_ID
作为主键,D_Name
,然后将 TL_ID
作为外键。
您能否告诉我是否为表提供了正确的架构?
如果有任何问题,那么您能否向我提供上述情况的正确架构?
最佳答案
您很可能需要一个层次结构表 http://msdn.microsoft.com/en-us/library/bb677174%28v=sql.100%29.aspx然后使用cte查询来显示结果。
关于c# - 分层数据的表模式应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652958/