php - 存储混合类型数字(百分比和单位值)的最佳实践

标签 php mysql

我陷入了两难的境地,非常犹豫该走哪条路,以及是否有更好的方法。

我有一个通配符输入 - 如果你可以这样调用它 - 可能有这些类型的输入

  • +0.77
  • +0.5%
  • -0.51%

平坦值始终为正值,百分比值可以为正值。

存储这些值的最佳实践是什么?作为字符串或作为 2 列,其中一列包含值,另一列为 bool 值类型?

我很困惑,因为如果我选择最简单的路径,在某些情况下我会遇到其他问题,我需要将这些值乘以整数并考虑 trim($value, '%')然后检查是否有将其添加到结果中

最佳答案

这可能看起来有点矫枉过正,但我​​肯定会在这里寻找对象。

两个类,一个按绝对值偏移,另一个按百分比值偏移。定义一个工厂方法来解析输入字符串并实例化任一类。

然后,让这两个类扩展一个公共(public)接口(interface),该接口(interface)将包含类似 getAjustedValue(initialValue):ajustedValue 的方法。这将使这些调整值的使用变得更加容易和清晰。

OP评论后更新

对于数据库中的存储,我会将两种类型的调整存储在不同的列中。它使得编写计算调整值的 SELECT 语句变得非常容易,如:SELECT (original_value * ajustement_ratio + ajustement_absolute) as adjustment_value FROM ...

显然,我希望 ajustements 和 Original_value 不会来自同一个表,但这可以让您了解全局。

关于php - 存储混合类型数字(百分比和单位值)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551153/

相关文章:

php - MySQL查询从A中选择行并组合B中的多行

mysql - 使用 shell 脚本执行多个 MySQL 命令的更好方法

php - mysqli 自动递增生成的主 ID

php - 如何将 php 中的日期转换为 SQL 格式? (并插入)

php - 如何组织一个更大的 PHP 项目

mysql查询所有子账户及其子账户等

java - 如何执行其他架构存储过程?

java - 在另一个类(class)开始另一项 Activity

javascript - 根据使用 jQuery 动态生成的 html 动态添加 html

mysql - 在整个数据库中搜索列名