多叉树数据如何在数据库中存放可以高效读取
因为数据层级比较深,且在单一分支上的数据存在同其他数据表关联更新的操作,变动比较大.
目前是这样处理的,通过用户的 code 查询出所有下级节点,然后遍历数据,判断是否为新增节点,用户有多少新增节点?再去根据业务要求去处理。因为要处理所有的数据,经常出现超时的情况,且处理的很慢。
针对这种情况,如何实现高效的读取和修改呢?谢谢!
目前的数据处理如下: 因为数据在本处无法展示,便存放在了有道云笔记 [数据格式]http://note.youdao.com/noteshare?id=6b8fc1ee5236c9833218f47348cebac5&sub=69FCE2762E6D4ECF8D74CC44FFD9AB74)
关于数据中的说明: id 为数据库字段的主键id code 为用户的唯一编号 lorr 表示是否做过操作标识,l 为已操作, r为未操作
parent_id 为上级用户id
all_parent_code 是上七级用户的记录,方便统计一个人的下级用户,超出部分不计入
children 在数据库内是不存在的,为应用程序读取后生成的数据。
在数据库中的形式如下:
id | code | lorr | parent_id | all_parent_code |
---|---|---|---|---|
1 | s00001 | l | 0 | |
2 | s00002 | l | 1 | s00001 |
3 | s00003 | l | 1 | s00001 |
...
id | code | lorr | parent_id | all_parent_code |
---|---|---|---|---|
21 | s00021 | r | 17 | s00017-s00016-s00015-s00014-s00013-s00012-s00008 |
22 | s00022 | r | 14 | s00014-s00013-s00012-s00008-s00007-s00001 |
23 | s00023 | r | 10 | s00010-s00007-s00001 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您有空了可以试一下GDB或者图数据库。这个数据库就是为了解决这种情况诞生的。目前阿里云的GDB正在公测哦