2010-04-07 116 views
2

我正在爲一個項目設計一個數據庫。我有一個包含10列的表,其中大多數表在訪問表時使用,我需要添加3列;數據庫設計問題

View Count 
Thumbs Up (count) 
Thumbs Down (Count) 

這將在查詢%90當訪問表來使用。所以,我的問題是,是否最好打破錶並創建新的表,這將具有這3列+外部ID,或只是使其13列和不使用連接?由於這些列將被頻繁使用,所以我想再添加3個列更好,但是如果我需要創建10個以上的列將被使用%90的時間,我應該添加它們還是創建一個列新表和使用連接?

我不知道何時打破錶如果列非常頻繁地使用。你有什麼建議嗎?

由於提前,

回答

5

,因爲它是這樣一個大量的使用情況(90%)和領域是唯一的數字(不是文本),那麼我肯定會傾向於只將字段添加到現有的表。

編輯:如果信息很大和/或不經常訪問,只會將表分開。沒有固定的規則,如果您不確定是否有益處,則可能需要運行測試。

+0

感謝您的回答.. – deniz 2010-04-07 15:26:41

1

使用的頻率不關心你的表格佈局,至少直到你開始與巨大的表(行或列的數目)

的問題的答案是:它是標準化與額外的專欄。谷歌呢,有有的是關於它的資源(雖然有不同的質量)的

+0

謝謝..此表格目前有100.000行,所以它不是那麼大,但我們預計在幾個月內會有大約300k-400k行,並且它有可能會有很多的訪客,所以這就是爲什麼我對設計有一些擔憂。 – deniz 2010-04-07 15:30:30

0

我的建議是一樣的cedo的:去的13列。

添加另一個表到數據庫,與其他指數可能只是吃了你保存的空間反而會造成更慢,更復雜的查詢。

2

空間是不是一個大問題,這些天 - 我會說,將列添加到表中的決策應該基於「是直接關係到表中的列」,不「怎麼會經常的列使用「

所以基本上,是的,將它們添加到表中。有關主流數據庫設計的進一步考慮,請參閱3NF

0

嘗試查看Database Normalizatio n,瞭解用於規劃數據庫結構的一些清晰概述的準則。

1

同上一些早期的海報。 95%的時間,你應該根據邏輯實體設計你的表格。如果你有13個數據元素都描述相同的「事物」,那麼它們都屬於一個表格。根據您期望他們使用或一起使用的頻率,不要將它們分成多個表格。這通常會產生比解決問題更多的問題。

如果你最終與具有一些巨大的非常大的領域的數量,通常情況下只使用其中的幾個表,並且它導致了性能問題,那麼你可以考慮打破它。但是,你應該只能做,當你發現它實際上是造成性能問題。這一領域的先發制人罷工幾乎總是一個錯誤。

根據我的經驗,由於性能原因,唯一分裂一張表的時間表明任何值都是有一些很少使用的,非常大的文本字段。就像有一個「雜項額外評論」字段或「這個客戶正在寫作的小說文本」。