gpt4 book ai didi

php - MySQL可以从多级父子关系中计算总计吗?

转载 作者:可可西里 更新时间:2023-11-01 08:55:40 24 4
gpt4 key购买 nike

为了简单起见,我们假设存在以下表格:

表 1 - 卖家名单

ID |  Parent_ID  |  Percentage
----------------------------
1 | - | .5
2 | 1 | .4
3 | 2 | .3

此表显示了 3 个卖家。 1,主要 parent ,2,个人与 parent 1 和 3 与 parent 2 和 super parent 1。ID 1 获得所有个人销售的 50%佣金加上他们百分比水平之间任何子代理人的佣金差异。

例如:

下表将代表代理商的销售额列表:

表 2 - 代理销售额

ID   |   Cost
-------------
2 | 10.00
2 | 5.00
3 | 9.00

在这种情况下:

  • 卖家 ID 3 将获得其销售额的 30%,即 2.70 美元
  • 卖家 ID 2 将获得他/她销售额的 40% (.4 * 5 美元) + (.4 * 10 美元) = 6 美元加上他/她的 child 的覆盖。在这种情况下,他/她赚取的佣金差额加上销售额 (.4 - .3) * 9.00 美元 = 0.90 美元,因此卖家 ID 2 的总收入为 6.90 美元。
  • 卖家 ID 1 没有个人销售,但他/她的 child 和所有后代的收入优先:(.5-.4)(10.00) + (.5-.4)(5.00) + (.5-.4)*(9.00) = 2.40 美元

super parent (在本例中为 ID 1)可能是 ID 3 的直接 parent 并获得了 (.5-.3)。也就是说,父子关系并不总是线性的,层次结构的深度也没有设定。

最终,我正在尝试开发一个 mysql 或 php(或组合)公式来确定每个卖家在上述情况下的应付金额。计算每个卖家的总销售额和基于这些销售额的个人卖家收入很容易。弄清楚如何根据 3 的生产将收入应用于 ID 1 和 2 是另一回事。

有这方面的经验吗?

最佳答案

不幸的是,MySQL 并没有让树变得容易。

MSSQL 有一种叫做公用表表达式的东西可以使这更容易。

对于 MySQL,最好的解决方案是使用递归存储过程。但要做到这些可能非常困难。

相反,我会建议使用另一个表来存储一个 child 的所有 parent 以及他们比他们高多少级。这会使您的插入和删除代码复杂化,因为此表需要保持最新(触发器可以提供帮助),但它会使您的计算更容易。

关于php - MySQL可以从多级父子关系中计算总计吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com