2010-04-07 123 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个数据元素都描述相同的“事物”,那么它们都属于一个表格。根据您期望他们使用或一起使用的频率,不要将它们分成多个表格。这通常会产生比解决问题更多的问题。

如果你最终与具有一些巨大的非常大的领域的数量,通常情况下只使用其中的几个表,并且它导致了性能问题,那么你可以考虑打破它。但是,你应该只能做,当你发现它实际上是造成性能问题。这一领域的先发制人罢工几乎总是一个错误。

根据我的经验,由于性能原因,唯一分裂一张表的时间表明任何值都是有一些很少使用的,非常大的文本字段。就像有一个“杂项额外评论”字段或“这个客户正在写作的小说文本”。