我正在构建一个应用程序,该应用程序将存储许多关于人的“标记”(体重、身高、血压等),并且由于用户对他们想要在 I 中测量事物的度量单位都有不同的期望将需要以一种聪明的方式解决 UOM 的问题。我想知道是否就如何最好地存储这些信息达成了共识。我正在考虑的示例如下(在每种情况下,假设前端都捕获标记和与捕获关联的 UOM):
- 公制转换。转换为公制等效值并存储原始 UOM 的值,但仅存储公制测量值(原始测量值不会丢失,尽管转换中可能会出现一些小数精度)
- 存储两者。存储标记,捕获的 UOM,然后转换为公制并存储。这使得对度量数量的“同类”SQL 查询变得简单,同时完美地保留了原始标记的精度,但它显然更占用存储空间。我想插入的成本也会稍高一些,因为需要转换为公制(但我想这无关紧要)。
对我来说,精度损失并不重要,除了它可能产生的不和谐的用户体验。想象一下,如果用户放入 160 磅,然后看到它报告为 159.99 磅;这将是相当令人不安的,并会导致人们不相信这个系统。我怀疑在大多数转换中,尽管我可以返回相同的数字,而无需过多地增加数据库中的精度大小。不过,这种感觉只是我阳光般的乐观,而不是我已经测试过的东西。