在数据库中存储每月数据的最佳方法是什么?

5
我正在更新一个旧应用程序。数据库中有几个表存储每月信息。这些表基本上每年有一行,每个月有12个字段。我在想是否这是存储每月数据的最佳方式。是不是每个月都有一个记录更好?虽然从每年和id附加到每个月的角度来看,会有更多的重复,但这可能是微不足道的。对于单一记录方法,编码似乎更容易。虽然这并不重要,但我正在使用PHP/MYSQL。是否有最佳实践建议?
6个回答

3

在考虑数据的创建和使用时,按月记录更有意义。

您更愿意:

每个月插入一行

或者

更新一行并编写代码以找出要设置哪一列?

您更愿意:

选择MonthColumn在5到7之间的TotalSold总和

还是

...我没有那么多时间...;-)


2

我认为这取决于您要对数据做什么。

如果您始终希望检索整整一年的数据,则每个月一个字段是有意义的。

如果您想加入到每月的数据中(例如SELECT total_sales * monthly.tax),那么每月一行是正确的方式。


2

您是否需要回答类似于“我们在2006年5月至2008年11月之间售出了多少个小部件”的问题?在这种情况下,如果您存储了每月和每年的记录,查询起来会更加容易。


1
我认为你应该以更规范化的方式存储数据-每个月一个记录。数据需求可能会发生变化,但您始终可以通过SQL语句获取所需数据。

0
更好(更规范)的方法是拥有两个表格,一个用于年度数据,每年一行,另一个用于月度数据,每月一行,并且有一个列用于年份...


1
复制数据并不会导致规范化。 - derobert
@derobert,你的观点是什么?它是关于什么的?我的建议?我并不是在建议复制任何东西……相反,通过使用两个表来规范化数据,可以消除重复。或者你只是在强调我的建议? - Charles Bretana

0

我通常会选择标准化的每行月份设计,除非...

在某些应用程序中,去标准化是合适的,特别是在关系数据集市中。如果企业有强烈的兴趣进行许多计算,例如“查找1月销售额超过2月销售额10%以上的商品”,那么去标准化的数据集市就是合适的。

您可以这样做,因为数据集市不是维护数据完整性的主要方法,并且不受事务更新的影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接