在数据库应用开发中,我们经常需要面对复杂的SQL式计算,多级关联就是其中一种。SQL的join语句比较抽象,只适合表达简单的关联关系,一旦关联的层级较多,相应的代码就会变得非常复杂。而SPL则可以利用对象引用来表达关联关系,从而使代码更加直观,下面就用一个例子来加以说明。
表channel存储着某网站所有的频道及其上级频道的对应关系,分别用ID和PARENT字段来表示,最多四级,其中root代表网站本身(即根节点)。表中部分数据如下:
ID | PARENT | NAME |
p1 | root | news |
p2 | root | health |
p3 | root | manage |
c11 | p1 | Scenic Introduction |
c12 | p1 | Places of Interest |
c13 | p1 | Local culture |
c21 | p2 | Scenic Service |
c22 | p2 | E-commerce |
c31 | p3 | Travel Tips |
d111 | c11 | Investment Projects |
d112 | c11 | Virtual tour |
d113 | c11 | Places of Interest |