我在 mySql 中有一个自引用表,一个包含经理和员工的表。
CREATE TABLE `employee` (
`employee_id` BIGINT(10) NOT NULL AUTO_INCREMENT,
`firstname` VARCHAR(50) NULL DEFAULT NULL,
`lastname` VARCHAR(50) NULL DEFAULT NULL,
`manager_id` BIGINT(20) NULL DEFAULT NULL,
PRIMARY KEY (`employee_id`),
CONSTRAINT `FK_MANAGER` FOREIGN KEY (`manager_id`) REFERENCES `employee` (`employee_id`)
)
我想知道记录引用自己在概念上是否正确。我解释得更好:有些员工与某些经理有关系,例如员工 3、5、7 与经理 1 有关系,但我想创建一个列表来显示与经理 1 和经理 1 相关的所有记录。所以我试过让manager 1和自己有关系,所以manager 1指的是manager 1。
我没有发现任何错误,但想知道这是否是实现这种关系的正确方法,或者我将来是否会遇到问题。
谢谢
最佳答案
在我看来这不是最佳解决方案,因为:
- 它限制你在管理层次结构中只有 2 个级别(只有经理和员工)你不能有经理 -> 领导 -> 员工
- 你不能轻易地打印出员工树
- 我在大公司工作,唯一没有高层的人就是 CEO
我自己会改用这个查询
SELECT * FROM employee WHERE employee_id=1
UNION
SELECT * FROM employee WHERE manager_id=1
关于mysql - mysql中的一条记录自引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626035/