我试图制作2"一对多"在同一张桌子上的关系,因为我有由SPV监督的TL管理的员工。
员工表由( ID -PK-,name,hire_date ,,,,,)组成,它与TL和SPV的数据相同
在ERD上我已经在同一张桌子上做了一对多,但是我不知道如何在SQL上做到这一点(我无法检测到什么应该引用谁)我已经考虑放弃一对多关系的想法并添加一个&#34;类型&#34;如果员工为1,如果是TL,则为2,如果是SPV,则为3,但我需要知道每个TL的员工(TL#1有员工John,Paul,Smith,......在他的团队中)等等< / p>
**注意:我不确定将它作为一对多的关系是否正确,如果有其他任何方式我真的很感激它:)
答案 0 :(得分:0)
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