2010-02-03 61 views
1

我們正在將內容的元數據存儲在數據庫表格中。外面有一個名爲關鍵字的列,其中包含與內容相關的關鍵字。因此,我們是否應該根據關鍵字列對錶格進行規範化處理,因爲關鍵字列會保留多個值。數據庫表格規範化

回答

2

我不認爲這個問題的答案是複雜的。這是一本教科書的規範化問題,答案是是的,你應該正常化這個。

在一列中存儲多個值是違反第一 - 正常形式(大多數設計師試圖去第三 - 正常)。您希望這樣做的唯一原因是作爲性能優化,即如果數據庫非常大,並且您可以在非規格化列上使用某種特殊索引策略來實現某些特定優化(即物化路徑)。這裏情況不同。

不正常化會使編寫查詢變得困難並且無法正確編制索引。如果您存儲關鍵字,我只能假設原因是關鍵字搜索 - 所以您一定希望能夠索引這些數據並編寫簡單的查詢。

請 - 正常化您的數據。

+0

是的,重要的部分是如果您想要快速執行關鍵字搜索,則需要對關鍵字進行索引並將它們置於規範化列中,這是執行此操作的最簡單方法。 – 2010-02-03 15:06:03

2

我認爲這個問題的答案非常複雜。所有關於數據庫設計的大書都說正常化是一件好事。但在你的情況下,這取決於你將如何查詢數據。例如,如果您需要獲取包含關鍵詞的所有行,則必須使用不太快的類似運算符。但是如果你把所有的關鍵詞放在一張表中,那麼你只有一個地方更快。