树无限深。例如:postgresql计数子女数
+----+-------+--------------------+
| id | name | parent_id | value |
+----+-------+--------------------+
| 1 | test1 | | 0 |
| 2 | test2 | 1 | 0 |
| 3 | test3 | 2 | 5 |
| 4 | test4 | 1 | 0 |
| 5 | test5 | 4 | 5 |
| 6 | test6 | 4 | 0 |
| 7 | test7 | 6 | 10 |
+----+-------+--------------------+
我想获得一个孩子的总价值。 就像这样:
+----+-------+--------------------+
| id | name | parent_id | value |
+----+-------+--------------------+
| 1 | test1 | | 20 | = test2.value + test4.value
| 2 | test2 | 1 | 5 | = test3.value
| 3 | test3 | 2 | 5 |
| 4 | test4 | 1 | 15 | = test5.value + test6.value
| 5 | test5 | 4 | 5 |
| 6 | test6 | 4 | 10 | = test7.value
| 7 | test7 | 6 | 10 |
+----+-------+--------------------+
有什么建议吗?谢谢!
不知道你需要休息,我不能说什么明确的关于什么是正确的模式是,但你的实现是树木存储在数据库中一个非常原始的方法。一些设计模式已经被发明出来,可以更轻松地做各种巧妙的事情,包括你问的问题。例如,查看物化路径设计模式。请参阅http://www.rampant-books.com/book_0601_sql_coding_styles.htm或其他参考资料。 –
@ hims056:什么不清楚?遵循'parent_id'链接并递归求和'count'值。 –
@ hims056第一张桌子是我的,第二张是我想要创建的视图 – Danfi