我正在尝试在同一张表上建立2个“一对多”关系,因为我的员工由受SPV监督的TL管理。

员工表由(ID -PK-,name,hire_date 、、、、)组成,TL和SPV的数据也相同

在ERD上,我已经在同一张桌子上做到了一对多,但是我不知道如何在SQL上做到这一点(我无法发现应该指的是谁)

我已经考虑过放弃一对多关系的想法,并添加一个“类型”作为1(如果为雇员),2(如果是TL)和3(如果是SPV),但是我需要知道每个TL的雇员(例如,TL​​#1的雇员为John,保罗,史密斯...在他的团队中)等等

**注意:我不确定将其建立为一对多关系是否正确,如果还有其他方法,我将非常感激:)

最佳答案

SQL吗?只需将相同的表放在REFERENCES子句中即可。

如果您不能执行此操作,请在单独的SQL语句中执行。

CREATE TABLE EMPLOYEE (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    spv INTEGER UNSIGNED NULL,
    ...,
    PRIMARY KEY(id)
);

ALTER TABLE employee ADD FOREIGN KEY ( spv ) REFERENCES employee (id) ON DELETE RESTRICT ON UPDATE CASCADE

关于mysql - 同一表中的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21865215/

10-12 20:30