如何才能最好地代表用户及其在关系数据库中报告的经理?

时间:2016-02-22 21:19:56

标签: database-design relational-database

例如,我们有User1, User2, and User3。这三个用户中的每一个都向Manager1报告,Boss1又向users报告。所有这些人都在user_id表中,并由manager_id唯一标识。我们只需要跟踪表中每个用户的当前经理。

如何才能最好地执行?我提出这个问题是因为它本质上是对同一个表的引用,我对于在users表中添加Boss1列犹豫不决,因为我们可能遇到了像Boss1这样的情况,可能没有直接经理(我想我们可能会选择让这个边缘案例自我引用,例如将setWsmLength的经理设置为自己)。

只是想在设计时考虑一些食物。

1 个答案:

答案 0 :(得分:1)

假设您确定没有用户拥有多个经理,您可以将Boss1的经理设为null。这将明确表明他没有任何东西,并且会阻止一个简单地走上经理链的程序进入无限循环。

如果您确定用户只有一位经理并且您想要迎合这种情况,那么您可以创建一个包含列{user_manager的新表{1}}和user_id,每个都是manager_id表的外键,并且都是主键的一部分。这样,拥有2位经理的用户将在该表中拥有两条记录,而users将只有Boss1所在的位置。

相关问题