2010-01-22 48 views

回答

5

這聽起來並不像你的表是非常normalized。您希望避免存儲重複數據,除非它具有某些性能優勢。重複的信息會導致更大的記錄和索引大小,這可能會增加磁盤尋道時間。

如果您列出的列是作爲不言自明的,因爲他們的聲音,那麼我將它分成三個表:

  • 視頻 - videoId,url,title,description,rating,views
  • video_tags - videoId,tag
  • video_comments - videoId,comment

這將允許您爲每個視頻創建一個條目,僅存儲一次主要信息。然後,您可以將視頻與多個標籤和多個評論相關聯。

+0

規範化,標準化,規範化。如果可能,請將ID保留爲整數。 +1 – 2010-01-22 02:54:23

+0

也許甚至是一個Video_Tag_Video表,它將視頻與標記相交。這樣你有一次存儲標籤名稱。 +1進行標準化。 – 2010-01-22 02:58:28

+0

@Coov - 是的,我認爲這將是一條路。我想讓我的答案簡單明瞭,而且很難知道海報想要他的標籤有多完整,但是如果它將成爲整個網站的事情,那麼單獨的「標籤」表格就會比較謹慎。 – zombat 2010-01-22 03:11:47

0

你所描述的內容叫做「垂直分區」。它是否有益取決於您是否將可變大小的列隔離到一個表中。您還可以水平分區表。閱讀Improving Database Performance with Partitioning瞭解哪些(如果有的話)分區類型有幫助的更多信息。

正如其他人注意的,首先規格化數據,那麼只有非規範化如果你沒有得到你所需要的性能。

0

數據集變得越大,越慢讀,寫和更新將要在一個表。您可以通過將其分解爲看起來合乎邏輯的多個子集來最小化這一點。看看WordPress如何存儲它的標籤和評論。

+0

LOL ....實際上這就是我所描述的... wordpress商店標籤和評論分開的帖子表... – bohohasdhfasdf 2010-01-22 05:03:48

相關問題