0

我们有一个表,我们必须为它提供许多不同字段组合的计数。这需要很长时间才能即时完成并且不提供历史数据,所以我正在考虑将这些计数存储在另一个表中的最佳方式,并带有时间戳,这样我们就可以快速查询它们并获取历史趋势。对于每个计数,我们需要 4 条信息来识别它,并且我们想要存储大约 1000 个不同的指标。我正在考虑三种不同的策略,有一个计数和一个时间戳,但在如何识别要检索的计数方面有所不同。

  1. 1 个表有 4 个字段来识别计数,这 4 个字段不会被规范化,因为它们包含来自不同外部表的数据。
  2. 1 个表格,带有 1 个“标签”字段,其中将包含 4 条信息作为标签。可以丰富此标签并将其保存在另一个表中,可能每个标签部分都有一个字段并将它们链接到外部表。
  3. 不同计数组的不同表能够在一个或多个字段上进行标准化,但这将需要 6 到数十个表。

我将使用第一个,根本没有标准化,但想知道是否有人有更好或更简单的方法来存储所有这些计数。

值示例:status,installed,all,virtual,1234,01/05/2015

  • 第一个字段,状态,最多可以有 10 个值
  • 第二个字段,已安装,每个不同字段最多可以有 10 个 1
  • 第三个字段,all,最多可以有 10 个不同的值,但它们对于所有类别都是相同的
  • 第四个字段,虚拟,最多可以有 30 个值,并且对于所有之前的类别也是相同的。
  • 最后两个字段将是一个数字和一个时间戳

谢谢,艾萨克

4

1 回答 1

1

当您有很多指标并且不需要使用它们进行指标内计算时,您可以选择 1. 解决方案。

我可能会建一个这样的表

Satus_id | Installed_id | All_id | Virtual_id | Date | Value

或者,如果前四列的组合具有正确的名称,我可能会创建两个表(我认为您将这种可能性称为 2 的第二种解决方案):

Metric Table
Satus_id | Installed_id | All_id | Virtual_id | Metric_id | Metric_Name 

Values Table 
Metric_id | Date | Value

如果您有指标或其他详细信息的名称,这很好,否则您需要使用第一种方法为每个组合复制。

在这两种情况下,使用不同的指标进行行内操作都会有点复杂,因此这种方法只建议用于高级 KPI。

最后,因为最后两个字段的所有可能组合始终存在于您的表中,您可以考虑将它们转换为列:

Satus_id | Installed_id | Date | All1_Virtual1 | All1_Virtual2 | ... | All10_Virtua30

All 有 10 个值,Virtual 有 30 个值,您将有 300 列,不是很容易处理,但如果您必须执行以下操作,它们将是值得的:

(All1_Virtual2 - All5_Virtual23) * All6_Virtual12

但在这种情况下,我宁愿(如果可能)提前进行计算以减少列数。

于 2015-05-01T11:17:27.343 回答