搜尋

首頁  >  問答  >  主體

mysql - 資料庫表中,兩個表互為外鍵參考如何解決

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

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

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

伊谢尔伦伊谢尔伦2768 天前1184

全部回覆(2)我來回復

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-08 11:05:31

    表結構不合理!

    應該要加角(jue)色表

    職工表裡新增角色欄位

    角色表

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

    職工表

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

    部門表

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

    回覆
    0
  • 迷茫

    迷茫2017-06-08 11:05:31

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

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

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

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

    回覆
    0
  • 取消回覆