文章詳情頁
mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決
瀏覽:93日期:2022-06-11 15:27:43
問題描述
我有兩個表,一個是職工表,一個是部門表。
職工表有職工號和部門號兩個屬性
部門有部門號和經(jīng)理號兩個屬性。
顯然,經(jīng)理號應(yīng)該以職工表的職工號為外鍵參考,而職工表的部門號應(yīng)該以部門表的部門號為外鍵參考。
這么一來就會出現(xiàn)兩個表互相為外鍵參考的矛盾,應(yīng)該如何解決呢?
問題解答
回答1:表結(jié)構(gòu)不合理!應(yīng)該添加角(jue)色表職工表里添加角色字段角色表id角色名1經(jīng)理2女秘書3搬磚狗職工表id角色部門姓名111經(jīng)理221小蜜331屌絲部門表id部門名1產(chǎn)業(yè)部2事業(yè)部3研發(fā)部回答2:“互為外鍵參考”為什么是矛盾?
如果想新增部門,這個部門經(jīng)理也是新人,可以先用一個舊職工“充當(dāng)”經(jīng)理,待添加成功后再修改掉。比如新增財務(wù)部和經(jīng)理張三:
insert into 部門表 select id=財務(wù)部, manager=老王insert into 職工表 select id=張三, department=財務(wù)部update 部門表 set manager=張三 where id=財務(wù)部
隨之而來的問題是,當(dāng)兩個表都為空時怎么添加?這時可以先添加一行數(shù)據(jù)后再補(bǔ)充外鍵約束。
排行榜

熱門標(biāo)簽