我有一棵简单的树,形状如下所示
ROOT
/\
A B
/ \
A1 B1
\
B11
这个数据存储在一个自引用的数据库表CLASSES中。
ID | CLASS_ID | PARENT_ID
---------------------------
1 | ROOT |
2 | A | ROOT
3 | A1 | A
4 | B | ROOT
5 | B1 | B
6 | B11 | B1
---------------------------
等等,这只是一个例子,class_id和parent_id列是整数类型的,但我只是将它们转换成字符类型以便于理解。
然后我有一个第二个表CHILDREN,最终我想让它看起来像这样:
ID | CLASS_ID | CHILD_CLASS_ID
--------------------------------
1 | ROOT | A
2 | ROOT | A1
3 | ROOT | B
4 | ROOT | B1
5 | ROOT | B11
6 | A | A1
7 | B | B1
8 | B | B11
9 | B1 | B11
---------------------------
如果一个类比其分支中的任何类都低,那么它就是所有更高级别类的子类。我知道这绝对是一个递归问题,但我是PHP新手,真的需要一些帮助。我正在运行mysql。我还应该提到,我将向后遍历。所以我要在底部插入类。下一个要插入的类的例子是A11,然后我需要向上遍历以找到所有更高级别的类,并使它们成为A11的父类。