c# - 分层数据的表模式应该是什么?

标签 c# sql-server database-design hierarchical-data

我刚刚参加了一次面试,面试官向我提出了一个问题,其中包括这个场景和一些示例数据:

ABCD 的老板。 DEF 的老大。 那么FGH的老大,即我们有分层数据。

换句话说,我们可以说有项目经理、团队领导,然后是开发人员。现在我们要创建表来存储数据。

此外,开发人员以后可以成为项目经理。

那么我们应该如何创建表呢?该表应包含哪些列?

我的答案是:

我们应该为项目经理准备一张表,其中包含 PM_IDPM_Name 列,其中 PM_ID 是主键。然后我们应该为团队领导者创建另一个表。在该表中,我们应该将 TL_ID 作为主键,将 TL_NamePM_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/

相关文章:

sql - 什么更好 : to have many similar databases or one database with similar tables or one database with one table?

c# - 动态更改 gridview 列的标题文本

c# - C# 中的主成分分析

sql-server - T sql 使用内连接选择数据透视表

sql-server - 我想隐藏 SQL Server 数据库中的表

ruby-on-rails - 可用性日历的最佳数据库架构是什么,它可以安排约会(重复和单次)

mysql - 如何将层次信息存储到数据库中?

c# - 登录成功后授权页面重定向回登录

c# - ASP.net 很好地呈现 HTML(美化)

SQL 将数字转换为任何基数的字符串表示形式(二进制、十六进制、...、三十六进制)