Closure Table 很好的解决了父子关系层次问题,就是说每一个成员只有一个父成员,而不必管它上层的成员。
employee | ||
supervisor_id | employee_id | full_name |
null | 1 | Frank |
1 | 2 | Bill |
2 | 3 | Eric |
1 | 4 | Jane |
3 | 5 | Mark |
2 | 6 | Carla |
上表描述了员工与导师之间的关系,mondrian通过引用closure table来解决访问它的问题。(网页上说普通的方法比较慢)
employee_closure | ||
supervisor_id | employee_id | distance |
1 | 1 | 0 |
1 | 2 | 1 |
1 | 3 | 2 |
1 | 4 | 1 |
1 | 5 | 3 |
1 | 6 | 2 |
2 | 2 | 0 |
2 | 3 | 1 |
2 | 5 | 2 |
2 | 6 | 1 |
3 | 3 | 0 |
3 | 5 | 1 |
4 | 4 | 0 |
5 | 5 | 0 |
6 | 6 | 0 |
上面的表描述了节点与节点之间的距离
这样就可以通过6 访问2,4;通过2访问6,3;通过3访问5了。
具体的数据库设计,schema文件设计参见(http://forums.pentaho.org/showthread.php?t=73017)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步