我正在使用PHP(CodeIgniter)和MySQL为网站实现MLM树。我需要在数据库中实现二叉树实现。以下事项应予以考虑:
对于每个节点,左子树中子项/节点数的最小值和右子树中子项/节点数称为一对。对于每对,一个节点获得1个点 - 应该存储在数据库中(节点代表用户)
创建新节点(无论在哪里)时,许多节点的对可能会递增。因此,无论何时创建节点,都应更新每个节点的点(在适用时加1)
另一个约束是每天任何节点不能超过100个点。
我还需要构建(在网页中显示)树。只显示4-5个级别。
数据库可能有100000个节点
我发现主要有4个模型用于在MySQL中实现hieararchical数据,PHP
所以我想找到一个解决方案,它可以减少插入开销并成功更新所有适用节点的点。
我尝试了邻接List解决方案。
node ( id, parentid, leftChildId,rightChildId,leftCount,rightCount )
userStat(id,sdate,pairs,mlmIncome)
每次插入一个节点时,我向上移动并继续增加子计数。如果新对生成,那么我也增加它并增加点数。 我正在使用存储过程执行这些操作。
我选择此解决方案而不是嵌套集的原因是: 对于插入的每个节点,要为嵌套集更新的节点数总是大于邻接列表。
虽然构建树的速度不仅仅是插入。并且嵌套集在构造树时更好。
我正朝着正确的方向前进吗?请帮忙!
Thnx提前!