2011-06-01 107 views
2

所以我有點失落。我無法創建我的模式,因爲我在FK循環中循環。每個表格都需要創建下一個。FK循環問題與表

  • 公司有FK到一個城市
  • 市有FK到一個國家
  • 國家有FK到貨幣
  • 貨幣有FK到公司(央行發出貨幣。)

那麼我該如何去創建這些表?這些都是必需的FK。

+0

[可能的重複。](http://stackoverflow.com/questions/955671/dealing-with-circular-reference-when-entering-data-in-sql) – 2011-06-01 01:18:28

+0

該鏈接談論關於禁用FK或使用虛擬一個用來獲取數據。但是我希望看到在不改變模式的情況下如何通過改變關係來改變模式。 – Matty 2011-06-01 01:30:58

+0

您需要將其中的一個設置爲空(刪除NOT NULL約束)。 – 2011-06-01 01:32:35

回答

1

您需要創建其中的元素FKS關係表,打破循環引用:

介紹CompanyCurrency表,其中PK或者是一個複合鍵(FK公司+ FK外幣),如果它是獨一無二的或自動生成的序號值(可能是一個更好的選擇)

enter image description here

如果你真的想提高你的設計,你會繼續做這所有表。所以你只有(PK,Name)所有表,然後有所有需要它的關係表。

0

使用主鍵創建所有表,然後添加所有外鍵。