小编典典

用python遵循sql数据库的树结构

all

我有一个结构如下的数据库:

Mother Child1 Child2 Salary
0x123 0x456 0x789 80
0x456 0xabc null 60
0x789 null null 50
0xabc 0xdef 0xghi 120

而且这个数据库可以扩展到数千条记录有没有办法给 Python 函数起一些像“0x123”这样的名字并得到他/她所有孩子的薪水的总和?

像 0x123 => 230

0x456 => 180

0x789 => 50


阅读 63

收藏
2022-07-18

共1个答案

小编典典

我不知道您正在使用哪个数据库以及您了解哪些库。但是,我将分享我的粗略解决方案(此功能只会为您提供有关解决方案的一些提示,结构取决于您使用的库)。

我相信您需要的函数必须是递归函数。

def your_func(node):
    child_1 = node.child_1
    child_2 = node.child_2
    return your_func(child_1).salary + your_func(child_2).salary

您将需要此功能的停止条件。当函数到达叶节点(没有子节点)时,该条件将停止函数。就像我说的那样,您必须根据自己的目的对其进行修改,并且就您使用的库而言,它更像是一个伪代码,而不是 Python 脚本。

2022-07-18