2009-10-23 29 views
0

假設我有四對成對的M2M相關模型:A,B,C,D。我創建了一箇中間模型ABCD來建立它們之間的關係。如果數據庫中存在許多重複的列對,是否將中間模型歸一化爲多個模型是一種常規做法?我應該在django中規範中介模型嗎?

我所關心的是: 1.打破ABCD會混亂models.py 2.多個2列表比4列表(w /重複列對)好嗎?

回答

1

還有一些問題可能有助於您的設計。

  1. 所有的表格都與每個 有關嗎?
  2. 做的全部都必須存在相同的 時間嗎?意思是說,如果A存在做B,C 和D也存在?
  3. 他們的關係是什麼? 意義,一對多,一個 一個...等

我覺得你在做什麼是好的,但我會更傾向於使用多個2頁的表(但是這完全取決於你的答案對我的三個問題)。我認爲2列相交表使查詢和數據完整性控制更容易。

EDIT(你的迴應後):

這個經過進一步審查,我認爲這將是查詢等將是單4列的表更容易的辦法。我通常不喜歡這種方法,但是如果您的數據實際上都是相關的並且都會存在,那麼您可以節省大量時間,使用第一種方法查詢數據。

我必須向我的DBA朋友推薦此推薦;)

+0

我編輯了我的問題。 1:是的。 2:不是現在。但隨着數據庫的不斷增長,一切都應該存在。我允許FK爲空。 3:我目前的設計是全部M2M。謝謝。 – Dingle 2009-10-23 15:50:25

+0

是的,的確,我發現使用單個表格可以節省很多工作量,特別是當我想輸出類似A的分層結構時:B:C – Dingle 2009-10-23 18:17:34

+0

如果對第一個和第二個問題的回答是「是」,那麼該怎麼辦? @北極?對第三個問題的迴應可能是混合。 – Stryker 2017-01-18 12:35:25

相關問題