首页  >  问答  >  正文

mysql - 数据库表中,两个表互为外键参考如何解决

我有两个表,一个是职工表,一个是部门表。

显然,经理号应该以职工表的职工号为外键参考,而职工表的部门号应该以部门表的部门号为外键参考。

这么一来就会出现两个表互相为外键参考的矛盾,应该如何解决呢?

伊谢尔伦伊谢尔伦2689 天前1119

全部回复(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
  • 取消回复