我遇到了一个删除,非常不愿意走哪条路,如果有更好的方法可以做到这一点,我有一个通配符输入 - 如果你可以调用它 - 可能有这些类型的输入
平面值总是正数,百分比值可以是,存储这些值的最佳做法是什么?作为字符串或2列,一个是值,另一个是bool的值类型?我很困惑,因为如果我选择最简单的路径我面临另一个问题,在某些情况下,我需要将这些所述值乘以整数并考虑trim($value, '%')
,然后检查是否有它将其添加到结果中
答案 0 :(得分:0)
这可能看起来有点矫枉过正,但我肯定会在这里寻找对象。两个类,一个用绝对值偏移,另一个用百分比值。定义一个工厂方法来解析输入字符串并对任一类进行包含。然后,让两个类扩展一个公共接口,它将包含一个类似“getAjustedValue(initialValue):ajustedValue”的方法。这将使这些调整值的使用更加容易和清洁。
OP评论后更新
至于数据库中的存储,我会将两种类型的ajustements存储在不同的列中。这使得编写计算调整值的SELECT语句变得非常容易,如:SELECT (original_value * ajustement_ratio + ajustement_absolute) as adjusted_value FROM ...
。显然,我希望ajustements和original_value不会来自同一张桌子,但这会给你一个大局。
答案 1 :(得分:0)
为什么不将-0.51%存储为-0.0051?