2010-09-10 73 views
0

我在DB結構工作,好像我已經結束了與很多多對多表。我得到這麼多人的原因是我的基礎表是項目,每個項目可以有多個搜索條件出現在用戶面前。所以我規範化了所有的搜索標準,並使用了很多表來鏈接項目和搜索條件。無論出於何種原因,只有7個搜索標準表格和7個搜索標準表單不太合適。很多很多人Manys

是否有更好的方法來制定這些關係,而仍堅持是第三範式?

由於總是十分讚賞的輸入。

--S

+3

這個標題會更好,因爲很多多對多:P – msarchet 2010-09-10 14:27:41

+1

你能不能給我們一些示例數據? – 2010-09-10 14:28:07

+1

沒有ER圖很難說。 @msarchet或許多許多。 – 2010-09-10 14:29:15

回答

0

我懷疑你會更好地服務於星型模式和非規格化維表。你的基表將作爲事實表。您的搜索條件將被轉換爲多個列並放置在一個或多個維度表中。例如,如果屬性A完全依賴於屬性B,並且屬性B完全依賴於屬性C,則可以用(C,B,A)製作一個維度表,然後將C遷移到您的基表中,如下所示:一個外鍵。重複所有相關屬性組。

如果您有一些不明顯相關但卻集中在一起的奇數球低基數屬性,則可以從他們的交叉產品中製作另一個維表,並添加到主鍵上,然後將此鍵遷移到基表以及。

如果需要第三範式(它應該只有當數據正在被多個進程更新所需的),那麼你可以標準化維度表到所謂的雪片狀尺寸。您將爲此付出代價,因爲每個查詢都需要更多的連接。

+0

感謝彼得......我其實是想,但試圖堅持一個標準化的結構,我們的插入/更新/刪除等。不過,這個數據不會被頻繁修改和規範化的方法只是似乎有點在加入所有表格方面感到痛苦。 – scarpacci 2010-09-15 04:27:36

0

我不太確定,如果我瞭解你的模型..我相信你有一個項目表和其他7個表相關(比如說,類別,作者,國家等等)。而你的搜索必須查找那7個NxN關係,而你不喜歡一個查詢使得7個連接...如果這是問題,那麼你應該考慮使用full text search

+0

你在7個表格中是正確的,但這7個表格通過多對多鏈接到項目(項目可以有許多作者和作者可以有許多項目) – scarpacci 2010-09-15 04:24:04