gpt4 book ai didi

php - 树遍历递归计算

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:32:47 25 4
gpt4 key购买 nike

我们有用户、问题和无限级别的类别。用户可以从问题中得到一些分数。问题可以有多个类别。

我想做的是计算每个类别的顶级用户:它只是从该类别及其子类别下的问题中获得的总分。

所以,我有这些表:

questions
--------------
id
title
question

categories
--------------
id
parent_id
category
lft
rgt

question_categories
--------------
question_id
category_id

users
--------------
id
username

user_points
--------------
id
user_id
question_id
point_type
points

user_category
--------------
user_id
category_id
points

我想做的是计算 user_category.points 值。总结每个类别的要点很容易,但包括子类别会变得复杂。

执行此操作的最佳方法是什么?

示例计算:

假设类别是:

Programming
PHP
Zend Framework
Symfony
Java
Ruby on Rails

假设用户从 Zend Framework 获得 3 分,从 PHP 获得 2 分,从 java 获得 5 分1 分 来自 Rails。该用户每个类别的积分将是:

Programming            11 (5+5+1)
PHP 5 (2+3)
Zend Framework 3
Symfony
Java 5
Ruby on Rails 1

最佳答案

也许最好使用标签而不是层次结构。例如,任何带有“Zend Framework”的东西也会有“PHP”和“Programming”标签。当某些类别可以出现在多个地方时,这也会有所帮助。例如,我可以在 jQuery 和 Javascript 中使用 ajax。然后,为用户的类别中列出的每个标签添加 1。

关于php - 树遍历递归计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512104/

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