2010-01-22 49 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

相关问题