部门的数据库设计要点:

dept_idancestorsparent_idorder_numis_del
  • dept_id:部门编号
  • ancestors:记录从根节点开始,至父亲节点的所有祖先节点id,例如 0,1,5,20
  • parent_id:父亲节点编号
  • order_num:同层排序
  • is_del:逻辑删除

这样设计有几个优势:
1. 支持无限层级
2. 支持层级排序,通过ancestor字段,高层在低层前面。查询某个节点的子节点如何处理?就是先查询到父节点,然后用父节点作为前缀,prefix% 即可。
3. order_num是同层排序
4. parent_id是层级结构时使用
5. is_del逻辑删除,方面数据找回,避免对关联数据造成影响

更多推荐