PHP关于太阳线直线会员分支下线所有人数统计

Transhun 发布于 2014/04/22 15:04
阅读 2K+
收藏 3
PHP

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

以上是结构图,现有数据库只有两个字段,如:uid和tid,假设我目前的uid是100001,我发展了三个会员,但是我的其中一个会员100005他 发展了三个,但不一定是三个,目前想要统计出我是100001下面有多少,包括树下所有人,统计100021下面有多少人,还有怎么把这个树表达出来,由 于个人能有限,请各位大神给予帮助,写出相应的算法!还有就是输入一个ID可以把我下面的所有人员都列出来,这个怎么实现,数据库当时设计只有这两个字段。更改是不是有困难!

加载中
1
非良
非良

http://blog.csdn.net/MONKEY_D_MENG/article/details/6647488


基于左右值编码的Schema设计

金拱门
金拱门
你给的这篇文章简直是 非常好!!! 我强烈推荐楼主参考这个!
0
非良
非良

不改结构只能递归了.

Transhun
Transhun
求写法!
0
金拱门
金拱门


如果不考虑性能的话,可以使用一个 递归 去获取所有。当然,每次执行起来就会变得非常慢了。

在现有表中添加一个 child 的字段,用于记录 子层的发展。每一个子层进行更改,程序都对上层的父进行记录和修改。

这样要用到的时候,直接填写ID,查对应的 记录就行了。

-----

另外一个方法就是 对遍历过的 整个 进行 缓存处理,打包成成品。 只要涉及到修改,就更新缓存。这是在不改表结构,用算法去实现。


0
NealFeng
NealFeng

估计写存储过程可以,不过我不会写

如果要调整表的结构,可以参考我的博文(只有思路,没有实现):

http://my.oschina.net/u/1382972/blog/225211 

0
Eddy8
Eddy8

http://segmentfault.com/q/1010000000126370

0
yong9981
yong9981

见https://my.oschina.net/drinkjava2/blog/828781
只需要利用行号(已排序)和深度两个额外字段(加上尾部的结束标记),即可以高效地实现SQL子树、父子节点的查询/删除/插入操作,缺点是节点的移动操作不太方便,适用于只增减,不常移动节点的场合。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部