首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL可以计算多层父、子关系的总数吗?

MySQL可以计算多层父、子关系的总数吗?
EN

Stack Overflow用户
提问于 2011-02-21 19:26:16
回答 1查看 1.4K关注 0票数 3

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

表1-卖方名单

代码语言:javascript
运行
复制
ID |  Parent_ID  |  Percentage
----------------------------
1  |    -        |     .5
2  |    1        |     .4
3  |    2        |     .3

这张表显示了三个卖家。1,主要的父母,2,一个有父母1和3有父母2和超级父母1。ID1从所有个人销售中获得50%的佣金,再加上他们的百分比水平之间的任何子代理的佣金差额。

例如:

下表表示代理的销售列表:

表2-按代理分列的销售情况

代码语言:javascript
运行
复制
ID   |   Cost
-------------
2    |   10.00
2    |   5.00
3    |   9.00

在这种情况下:

  • 卖家ID3将获得其销售额的30%,或2.70美元的
  • 卖家ID2将获得其销售额的40% (.4 *5美元)+ (.4 *10美元)=6美元,外加对其子女的覆盖。在这种情况下,他/她赚取佣金的差额加上销售金额(.4 - .3) *9.00美元=0.90美元,因此卖方ID 2的收入总额为6.90美元。
  • 卖方ID 1没有单独销售,但收入高于其子女和所有后续者:(5-4)(10.00)+(5-4)(5-4)+(5-4)*(9.00)=2.40美元

超级亲本(在这种情况下是ID 1)可能是ID3的直接亲本,并且是挣来的(5..3)。这就是说,父级子关系并不总是线性的,层次结构的位置也没有固定的深度。

最后,我试图开发一个mysql或php (或组合体)公式,以确定每个卖家在上面的场景中应该做什么。根据这些销售额计算每个卖方的销售总额和单个卖方的收益是很容易的。根据3的制作,找出如何将收入应用于ID1和ID2是另一回事了。

有此方面的经验吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-21 19:32:20

不幸的是,MySQL并不能使树变得容易。

MSSQL有一些叫做公共表表达式的东西,使这更容易。

对于MySQL,最好的解决方案是使用递归存储过程。但这些都很难纠正。

相反,我建议用另一张桌子来存储一个孩子的所有父母以及他们上面有多少层。这会使您的插入和删除代码复杂化,因为此表需要保持最新(触发器可以帮助),但它将使您的计算更加容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5070300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档