UOM(计量单位)设计模式

use*_*254 6 c# java design-patterns design-principles

寻找关于存储和转换已知值(即米到英尺)的一般设计模式原则.谷歌搜索没有运气,所以我必须遗漏一些东西.

假设在单个表中有多个具有各种UOM的字段,最佳做法是什么?目前许多领域都是隐含的,我们正在考虑对此进行标准化.我们希望让用户自由进入他们的UOM,而其他人则可以在他们喜欢的UOM中查看.

我应该存储"输入的值"并转换为一些常见的原语(用户输入的脚我转换为米并存储它)?我应该将此输入的脚值存储为审核备份吗?

我不是某个数据库表的唯一消费者,其他应用程序总是在知道值+ UOM与原始用户输入值的转换时更好.

对于我可能缺少的精确度是否存在严重的转换影响.米>英尺>米应该是足够可靠的业务线应用转换(转换可以是小数点后17位,但显示和输入值限制为2-4位小数)

任何其他的想法或链接指向我正确的方向,所以我不是重新发明一个已知问题的解决方案?

请注意,我没有设想一些运算符重载的大解决方案,但更多的是在普通的Joe Developer可以维护的实际应用程序中.

Buh*_*ndi 2

如果您想要一个遵循 UOM 的模式,JSR-275 (java) 可以解决这个问题。实现 JSR-275 的流行库是JScience

至于值的存储,我只会为valuemeasurement type(例如米/英尺等)创建一个永远不会改变的列。然后可以根据要求轻松完成转换。