Det är inte så att "relationen [spelas] in två gånger", utan att du faktiskt har två relationer mellan dessa tabeller - vilket är helt okej. Min enda oro är, kan en chef tillhöra samma kontor som han är chef för? (Och när det gäller:är det verkligen sant att alla personalen har ett kontor och varje kontor har en chef som är en anställd?) Om så är fallet har du ett cirkulärt beroende:du kan inte ställa in chefens kontor förrän kontoret finns, men du kan inte ställa in kontorets chef förrän chefen finns. Så länge det ena eller andra fältet är nullbart kan du kringgå detta med applikationslogik (INSERT
en, sedan INSERT
den andra, sedan UPDATE
den första), men den är lite ful. Men om det är de relationerna som finns, så finns det inte mycket du kan göra åt det.