我正在尝试在同一张表上建立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/