php - 将公式保存在数据库中并在运行时替换值 php

标签 php mysql data-structures binary-tree finance

我想将以下公式存储在数据库中

Z-Score = 1.2(Working_Capital/Total_Assets) + 1.4(Market_Value/Total_Assets)

营运资本、总 Assets 、保留 yield 存储在数据库中的不同表中 例如:- Total_Assets = BalanceSheet.totalAssets,Market_Value = Expert.market_value

用户可以通过表单更改此公式,他可以向公式中添加更多数量

Z-Score = 1.2(Working_Capital/Total_Assets) + 1.4(Market_Value/Total_Assets)+1.0(Sales/Total Assets)

问题:- 现在请记住,公式可以随时更改,我需要将其存储在用户 ID 的数据库中,以便我可以为其提供编辑选项。 该公式还用于计算多年来的数据。 很多用户都会有很多公式。

方法:- 从我到目前为止读到的内容来看,许多人建议将其存储为字符串,这是不可能的,因为我需要向用户显示用于编辑公式的值与数据库中的值不同。

有人建议将表达式转换为树数据结构,但我不知道哪种树结构适合我的应用???

最后我需要将它存储在 mysql 数据库中,这样树存储和检索会更快吗???

我正在寻求建议,因为我觉得这是一个复杂的问题,但如果有人已经解决了 PHP,那么请随时分享

提前致谢。

最佳答案

我提出的上述方法的解决方案。

1) 从用户那里获取公式,当他选择公式操作数时,创建一个新的操作数数组,该数组将前端操作数的名称与数据库表和列名称的相应值进行映射 例如:-

`$input['operands'] = array(
  array('Total_Assets' => 'balance_sheet.TotalAssets'),
  array('Working_Capital' => 'balance_sheet.WorkingCapital'),
  array('Revenue' => 'balance_sheet.TotalRevenue'),
  );`

2) 创建公式的中缀形式,从中可以创建以下形式的二叉树 中缀形式:-

(
[0] => revenue
[1] => total_assets
[2] => working_capital
[3] => +
[4] => /
)

双树:-

{"__exp1":{"operator":"+","operand":["working_capital","total_assets"]},"root":{"operator":"\/","operand":["__exp1","revenue"]}}

3)现在将所有这些发送到服务器,我将其保存为表的每一列,也可以在服务器端将树反向映射到公式的中缀形式

4)这可以帮助我替换数据库值,因为我有数据库列数组,我可以从中获取值并执行公式并返回值。

关于php - 将公式保存在数据库中并在运行时替换值 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40630361/

相关文章:

javascript - Javascript 的链表数据结构

javascript - 返回之前增加堆栈长度 - 为什么它有效?

php - 从二维数组中分解一列值

php - 在 Mysql 中用数组元素更新整个列

MySQL LEFT JOIN 与 GROUP BY 和聚合运算符阻塞

c# - 我可以获得在 MySQL 中导致重复异常的特定字段吗?

php - 可以在 View 中加载的数据库驱动菜单

php - 在 php 中按小数点拆分数字

php - 在表中显示 MySQL 查询结果(自定义 WordPress 表)?

python - csv到python中的稀疏矩阵