这确实是一个关于最佳实践的问题。
我正在开发一个系统,我将在其中收集一些测量值(称为 HR 和 RR)并计算这些测量值的平均值。现在对于用户界面,我们只对这些平均值感兴趣,但对于稍后深入的数据分析,我们需要所有单独的测量(导出到 matlab)以及所有平均计算(不要问 - 用户要求,如果需要,我只会保存单个测量值并在以后计算平均值)。
以下是有关平均计算等的详细信息:
- HR:我们每 500 - 1500 毫秒(可变)获取一次读数。我们根据 4-12 个读数计算平均值(取决于读数之间的时间)。
- RR:我们每 3-17 秒(可变)获得一次读数。我们根据 2-3 个读数计算平均值(取决于读数之间的时间)。
对于这两者,我们保存:
- 平均值(十进制)以及来自用于平均计算的读数的第一次读数的时间戳。
- 每个单独的读数(十进制)连同读数时的时间戳。
如您所见,平均计算和单个读数的数据相同。与 HR/RR 相同 - 数据相同,可以表示为:
- - - - - - - - -
| 阅读 |
- - - - - - - - - -
| 时间戳 |
| 价值 |
- - - - - - - - - -
由于我们以不同的时间间隔计算数据等,我们不能将 HR+RR 作为单行存储在数据库中,我们需要单独的行或表。
问题是:
1. 为 HR 和 RR 创建单独的表是否更好?还是将它们作为单独的行存储在同一个表中更好,用一列指示给定行是 HR 还是 RR?
2. 为每个单独的读数创建单独的表格更好吗?还是创建自引用表更好,其中每个单独的读数将引用同一个表中的一行,并使用它的平均计算?
我对数据库设计不是很好,我不确定在这种情况下使用的最佳实践是什么。
我也在考虑使用 MongoDB(而不是 SQL 数据库——可能是 MSSQL,因为该项目是基于 C# 的),这可能会使生活更轻松,因为我可以将一系列单独的测量值嵌入到具有平均计算等的文档中。就我而言知道写入 Mongo 的速度非常快......
任何指针?谢谢。