我们有用户,问题和无限级别的类别。用户可以从问题中获得一些观点。问题可以有多个类别。树遍历递归计算
我想要做的是计算每个类别的最高用户数:它只是从该类别下的问题中获得的总点数,也是它的子类别。
所以,我有这些表:
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
假设用户得到3分从Zend框架,2点从PHP,5分从Java和来自Rails的1分。每类此用户的积分将是:
Programming 11 (5+5+1)
PHP 5 (2+3)
Zend Framework 3
Symfony
Java 5
Ruby on Rails 1