mysql - 資料庫表中,兩個表互為外鍵參考如何解決
伊谢尔伦
伊谢尔伦 2017-06-08 11:03:31
0
2
1149

我有兩個表,一個是員工表,一個是部門表。

  • 員工表有職工號碼和部門號兩個屬性

  • #部門有部門號碼和經理號碼兩個屬性。

顯然,經理號應該以職工表的職工號碼為外鍵參考,而職工表的部門號應該以部門表的部門號為外鍵參考。

這麼一來就會出現兩個表互相為外鍵參考的矛盾,該如何解決呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(2)
女神的闺蜜爱上我

表結構不合理!

應該要加角(jue)色表

職工表裡新增角色欄位

角色表

id 角色名
1 經理
2 女祕書
3 搬磚狗

職工表

id 角色 部門 姓名
1 1 1 經理
2 2 1 小蜜
3 3 1 屌絲

部門表

id 部門名
1 產業部
2 事業部
3 研發部
迷茫

「互為外鍵參考」為什麼是矛盾?

如果想新增部門,這個部門經理也是新人,可以先用一個舊職工「充當」經理,待添加成功後再修改掉。例如新增財務部和經理張三:

insert into 部门表 select id=财务部, manager=老王
insert into 职工表 select id=张三, department=财务部
update 部门表 set manager=张三 where id=财务部

隨之而來的問題是,當兩個表都為空時怎麼添加?這時可以先加入一行資料後再補充外鍵約束。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板