2011-04-14 74 views
0

我很感興趣,要知道兩個數據庫的設計模式標準名稱,或者如果你是純粹主義者可能是「問題」:反規範化模式的「標準名稱」是什麼?

你將如何調用這些情況/ denormalisations? 我爲自己使用「鏡像屬性」和「輕彈外鍵」,但我相信沒有人會理解我:)。無論如何,情況很簡單:

1)在「父子」關係中有兩個實體,而在子實體中,不僅有外鍵屬性,還有父實體的一些其他「備份」屬性。這可能是因爲您不僅在地址實體中設置了街道,而且還設置了街道名稱以支持您的街道列表中不存在街道(或傳統數據更常見)的情況。

2)子實體包含由兩個字段組成的「外鍵」:一個標識「父表」,一個標識「父表中的鍵值」。這意味着首先進行解釋,對其進行過濾,我們知道哪個表應該加入。當然,這種關係的一致性在dbms級別上不會保持,但這仍然是我在實踐中看到的「親子關係」。

回答

1

1)在規範化的數據庫中,列應該依賴於鍵,整個鍵以及除鍵外的所有內容。 (所以請幫助我Codd。)您可以確定某些列的效率,但您的數據庫中存在重複的數據。這些重複的數據可能會不同步。 2)如果我理解你說的正確,你的「外鍵」的第一列標識哪個表,而第二列是定義該表中的行的實際鍵。我也看到了這一點。對於域類型表(保險組費率1,保險組費率2等),這可能是正確的,但是當與數據表一起使用時,表示一種多重繼承。在沒有看到特定實例的情況下,通常我會說多重繼承可以用一個基表和一個或多個擴展基表的附加表來重新定義。

+0

那麼這種類型的設計決策是否存在常見的「名稱」? – 2011-04-14 19:52:58

+0

首先可以命名爲「重複數據」,但是這個「名稱」沒有顯示「背後的原因」(提供無法使用父表的實體屬性提供的'ad hoc'屬性,因爲該實體未找到)。但第二:「多繼承FK」在谷歌工作完美:)尊重和謝謝。 – 2011-04-14 20:06:07