可能重复的树木:
What is the most efficient/elegant way to parse a flat table into a tree?数据库结构和查询层次数据和数据
这我发现相当棘手的,并希望对此事的一些看法。 我想存储分层数据(树状)与未知数量的层次和分支。我希望能够随时添加新的和删除任何内容。
由于庞大的用户群,我需要能够从层次结构中的任何节点一次查询所有子级ID的查询。
让我们假设一个网站的家庭社交化和更新他们的地位,如Facebook在任何时候你可以查看家庭成员“墙”,其中还包括所有最近的状态更新下面的人他们按照时间顺序排列在层次结构中。
很显然,一旦你拥有了这个家庭成员身份证的数组,这个家庭成员节点的子节点,获取帖子在循环中很容易。
让我们的例子简单的表结构:
id | parentId | name
________________________
1 | NULL | John
2 | 1 | Peter
3 | 1 | Bob
4 | 3 | Emma
5 | 2 | Sam
6 | 4 | Gill
等....你的想法。
我需要能够做到以上这样的东西,除非你认为结构需要适应。我已阅读mySql nested set model。 这看起来很复杂,如果有些东西不能正确更新并且会把所有东西搞砸,这可能是不可靠的。
我习惯于使用php和mysql,但一直在读cassandra和节俭。不知道这是否会更容易?
我知道它看起来很费劲,但嵌套集模型真的是你想要的。它很难解释/描述这一点,而不是实现它,并且生成的SQL比蚂蚁父子指针解决方案更简单,性能更好 – 2010-12-14 01:34:04