2014-06-05 37 views
0

我想簡化一個多對多關係複合體,由4個字段組成的密鑰組成,其中一個用於建立依賴關係(系列:是創建)。簡化與多餘字段的多對多關係

我知道應該打破桌子並保持依賴關係,但是經過長時間的閱讀和思考,我不知道如何。

下面的系統包含問題,它表示在 - 第一範式1NF-,其中Rel_Apply_Lodge它是顯示問題的表。

應用

[關鍵] id_applies

Rel_Apply_Lodge

[重點] [FK] id_applies

[重點] [FK] id_lodging

[Key] [FK] id_kind_boarding

[重點] [額外字段]意甲< - 解決重複行的問題

住宿

[關鍵] id_lodging

[FK] id_kind_booking

[FK] id_municipality

+0

什麼是你想要的模型化情?? – Goon10

+0

**目標:**管理住宿/託管請求(申請)。 **用戶的歷史記錄:**一個人申請住宿,並在此時創建一​​個關係(Rel_Apply_Lodge)。這個關係存儲:id_apply,id_lodging和id_kind_boarding。 –

+0

**問題:**每個請求都存儲一個寄存器。如果一個人需要申請三天,並通過同一託管,則系統存儲相同的三行時。這是當serie/order(field)保持依賴並避免重複時。 –

回答

0

它比它更容易和微不足道廣告曾想象過。

要解決它,請將Many-to-Many關係分爲兩部分:One-to-Many

實現成功地獨特的條件是:

  • 維護是有Many-to-Many關係相同的字段。
  • 並且,在兩個實體中添加一個ID attribute。這些保持依賴關係並解決重複問題。

這個模型看起來是這樣的:

應用: [關鍵] id_applies

Rel_Apply_Day: < - 新

[關鍵] ID < - 新

[FK] id_applies

意甲< - 我們可以保留意甲指標

Rel_Day_Lodge: < - 新

[關鍵] ID < - 新

[FK] id_lodging

[FK ] id_kind_boarding

住宿:

[關鍵] id_lodging

[FK] id_kind_booking

[FK] id_municipality