我正在更新一个旧应用程序。数据库中有几个表存储每月信息。这些表基本上每年有一行,每个月有12个字段。我在想是否这是存储每月数据的最佳方式。是不是每个月都有一个记录更好?虽然从每年和id附加到每个月的角度来看,会有更多的重复,但这可能是微不足道的。对于单一记录方法,编码似乎更容易。虽然这并不重要,但我正在使用PHP/MYSQL。是否有最佳实践建议?
在考虑数据的创建和使用时,按月记录更有意义。
您更愿意:
每个月插入一行
或者
更新一行并编写代码以找出要设置哪一列?
您更愿意:
选择MonthColumn在5到7之间的TotalSold总和
还是
...我没有那么多时间...;-)
我认为这取决于您要对数据做什么。
如果您始终希望检索整整一年的数据,则每个月一个字段是有意义的。
如果您想加入到每月的数据中(例如SELECT total_sales * monthly.tax),那么每月一行是正确的方式。
您是否需要回答类似于“我们在2006年5月至2008年11月之间售出了多少个小部件”的问题?在这种情况下,如果您存储了每月和每年的记录,查询起来会更加容易。
我通常会选择标准化的每行月份设计,除非...
在某些应用程序中,去标准化是合适的,特别是在关系数据集市中。如果企业有强烈的兴趣进行许多计算,例如“查找1月销售额超过2月销售额10%以上的商品”,那么去标准化的数据集市就是合适的。
您可以这样做,因为数据集市不是维护数据完整性的主要方法,并且不受事务更新的影响。