我正在构建一个数据库并遇到了一个我似乎无法解决的问题。数据库比图片复杂得多,但问题可以归结为下面的表结构。
问题是每个员工都有一个经理,每个经理都是一个员工。这些表似乎必须相互引用。但是,当我设置它时,这似乎无法正常工作。
我正在使用cakephp。这种关系类型的名称是什么?这是错误的设计吗?这种情况的正确设计是什么?我希望它尽可能自动地工作。
最佳答案
如果我正确理解了这个问题,那么您根本不需要 Managers 表。由于经理是雇员,因此没有理由不将经理存储在雇员表中。只需向员工表中添加一个名为 manager_id
的字段。 , 对于任何给定的行引用该员工的经理(这是同一表中的另一行)。
这称为递归的一对一关系,而且很常见。在您的情况下,它还可以防止您在两个实体(姓名、密码、职位等)之间定义重复的字段。
关于database-design - 如何设计带有需要引用自身的表的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589587/