闭包表树形设计
发布时间
阅读量:
阅读量
闭包表设计树型
背景(文章篇幅较长,如有需要请耐心阅读,终于完成撰写关于三种树形结构设计方案的博文)
在软件开发过程中,树状结构的应用场景十分常见,本文将通过部门表作为案例,对多种设计方案进行比较分析,探讨其各自的优劣;
问题
需求背景:根据所属部门信息查询相关人员;
问题:在选定一个顶级部门的前提下,如何实现跨层级展示该部门及其下属子部门中的所有人员?数据库表结构应如何设计更为合理?
是否采用递归方式?虽然递归方法能够解决问题,但会对系统性能造成一定影响;Oracle数据库内置了递归函数,而Mysql则不支持该功能。目前大型企业通常具备充足的预算,因此更倾向于选用Oracle数据库。然而大多数企业仍然使用Mysql数据库,在这种情况下又该如何应对呢?
语法:
select * from tableName
start with 条件A -- 开始递归的根节点,可多个条件
connect by prior 条件B -- prior 决定查询的索引顺序
where 条件 C
方案一:邻接表结构
说明:(典型父节点标识设计)
CREATE TA
全部评论 (0)
还没有任何评论哟~
