1

我在 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 相关的所有记录。所以我试图让经理 1 与自己建立关系,所以经理 1 指的是经理 1。

我没有错误,但想知道这是否是实现这种关系的正确方法,或者我将来是否会遇到问题。

谢谢

4

1 回答 1

0

在我看来,这不是最好的解决方案,因为:

  • 它限制你在管理层次结构中只有 2 个级别(只有经理和员工)你不能有经理 -> 领导 -> 员工
  • 您无法轻松打印员工树
  • 我在大公司实习,唯一没有人在上面的人是 CEO

我自己我会改用这个查询

SELECT * FROM employee WHERE employee_id=1
UNION
SELECT * FROM employee WHERE manager_id=1
于 2013-09-05T00:53:57.693 回答