我有兩個表,一個是員工表,一個是部門表。
員工表有職工號碼和部門號兩個屬性
#部門有部門號碼和經理號碼兩個屬性。
顯然,經理號應該以職工表的職工號碼為外鍵參考,而職工表的部門號應該以部門表的部門號為外鍵參考。
這麼一來就會出現兩個表互相為外鍵參考的矛盾,該如何解決呢?
女神的闺蜜爱上我2017-06-08 11:05:31
id | 角色名 |
---|---|
1 | 經理 |
2 | 女祕書 |
3 | 搬磚狗 |
id | 角色 | 部門 | 姓名 |
---|---|---|---|
1 | 1 | 1 | 經理 |
2 | 2 | 1 | 小蜜 |
3 | 3 | 1 | 屌絲 |
id | 部門名 |
---|---|
1 | 產業部 |
2 | 事業部 |
3 | 研發部 |
迷茫2017-06-08 11:05:31
「互為外鍵參考」為什麼是矛盾?
如果想新增部門,這個部門經理也是新人,可以先用一個舊職工「充當」經理,待添加成功後再修改掉。例如新增財務部和經理張三:
insert into 部门表 select id=财务部, manager=老王
insert into 职工表 select id=张三, department=财务部
update 部门表 set manager=张三 where id=财务部
隨之而來的問題是,當兩個表都為空時怎麼添加?這時可以先加入一行資料後再補充外鍵約束。