寻找有关存储和转换已知值(即米到英尺)的一般设计模式原则。一直没有运气就谷歌搜索,所以我一定想念一些东西。
假设在一个表中具有多个UOM的多个字段是最佳实践?当前隐含了许多领域,我们正在考虑对此进行标准化。我们希望给用户自由输入UOM的权限,但让其他人自由选择他们喜欢的UOM的权限。
我是否应该存储“输入的值”并转换为一些通用原语(用户输入要转换为米并存储的英尺)?我应该将输入的英尺值存储为审核备份吗?
我不是某些数据库表的唯一使用者,最好是其他应用程序始终在知道值+ UOM与原始用户输入值的情况下进行转换。
是否存在可能会导致精度下降的严重转换问题? Meters> feet> meters对于业务应用程序的转换应该足够可靠(转换可以是小数点后第17位,但显示和输入的值限制为2-4位小数)
还有其他想法或链接可以为我指明正确的方向,这样我就不会为一个已知问题重新发明解决方案了吗?
请注意,我并没有预想一些带有运算符重载的宏伟解决方案,而是更多普通Joe开发人员可以维护的实际应用中的工作。
最佳答案
如果要遵循UOM的模式,JSR-275(java)可以解决该问题。实现JSR-275的流行库是JScience。
至于值的存储,我只会为value
和measurement type
(例如,米/英尺等)创建一个永不更改的列。然后可以根据要求轻松完成转换。