最近,做项目的时候,有一个需求,Excel批量导入树形结构功能,如何理解导入树形结构呢?就是要体现出父子关系,如果对于数据库来说,可以通过pid来表现。批量导入的数据存入数据库,当我们查询的时候,需要能够查询并显示出树形结构。
如果只是简单的批量导入听起来感觉还是蛮简单的,但是加上了一个树形结构,还是有些些复杂的
先介绍一下数据库需要存储的主要字段为主键id,计划名称,计划内容,计划时间和为了体现父子关系的pid,id和pid肯定是不会让用户来填写的
目前,有几套方案,但都是各有利弊:
方案一:该方案模板
该方案前提:
1.在原有的数据库字段(除了id和pid)的基础上,增加一个父计划名称字段
2.计划名称不能重复
实现:
1.首先我们要根据计划名称查询计划表,看计划表中是否存在与目前计划名称相同的名称,如果有的话,执行更新(或者向用户提示该条信息计划名称已存在于数据库当中),否则执行插入操作
2.根据父计划名称查询计划表,得到父计划id(pid),根据父计划名称更新pid
优点:实现简单
缺点:
1.需要用户手动输入父计划名称,用户可能误操作输错
2.计划名称不能重复