指标 - 数据库号码保存约定?

时间:2014-12-14 15:25:19

标签: mysql mongodb naming conventions database

我想每天为我网站上的某些流程保存指标(统计信息),以便稍后在图表中显示。度量标准的示例可能是:

FacebookLikes
SiteVisitors

现在我想知道如何设计MySQL表。 - 我是否应该保存“DeltaFacebookLikes”和“DeltaSiteVisitors” - 或者我是否应该保存每个条目不断增长的绝对数字:

ID    DATE    FACEBOOK_LIKES    SITE_VISITORS

第一个例子(保存delta值)将是:
这里的问题是我永远不会有“总”值 - 除非我总结一下。

1    23.10    33                50
2    24.10    14                80
3    25.10    12                5
4    26.10    28                105

第二个例子(保存绝对值)将是:
这里的问题是我有总值,但我需要从v(x + 1)中减去v(x)来存档实际的delta值。

1    23.10    33                50
2    24.10    47                130
3    25.10    59                135
4    26.10    87                240

什么是正确/错误的方式?有没有错误的方法?
或者让两者结合起来?

1 个答案:

答案 0 :(得分:2)

我不认为这个问题有正确的答案,但我的直觉是每天存储增量数字。

存储累积数字可能非常有效。只需在表格中查找两个值,您就可以轻松获得两天之间的差异。如果您的用户在任意时间范围内询问Facebook喜欢的数量,那么这一点尤其有效。

另一方面,个别数字还有其他一些优势:

  • 如果您犯了错误或错过了一天的负载,那么解决问题会更容易。
  • 您可以更轻松地计算标准偏差和方差。
  • 您可以更方便地按非连续时间范围计算平均值 - 例如周一平均值。
  • 更容易进行趋势分析。

因此,从分析的角度来看,我会发现独立的日常测量是更好的选择。当然,您可以轻松地从一个转换为另一个,因此最佳选择可能取决于用户访问模式。