数据库处理用户上下级关系
来源:互联网 发布:python impacket库 编辑:程序博客网 时间:2024/06/05 04:09
背景: 大部分涉及金额的系统都要做佣金统计或查询所有下级的资料, 只用的关联(DBRef)查询, 不好处理,
这时可以添加多一个字段relation, 例如:
管理员admin : /admin
一级下级: /admin/ObjectId("xxxxxxx")
二级下级: /admin/ObjectId("xxxxxxx")/ObjectId("yyyyyyyy")
三级下级: /admin/ObjectId("xxxxxxx")/ObjectId("yyyyyyyy")/ObjectId("yyyyyyyy")
......
以此类推, 当需要查找某个用户的所有下级时, 用正则匹配即可
此处除开管理员(管理员可能为多个), 我都用mongo的ObjectId存储, 以确保唯一性
下面根据系统要求定义函数
函数:
def get_lower_user(self):
"""
获取当前用户自己和自己的下级
"""
# 得到当前用户
current_user = db.user.find_one({ "_id" : ObjectId(self.get_current_user()) })
# 如果当前用户不为管理员
if current_user.role == "admin":
reg = "^/admin" # 获取当前用户自己和自己的下级
reg = "^/admin/" # 只获取当前用户的下级
else:
reg = "^%s" % current_user.relation # 获取当前用户自己和自己的下级
reg = "^%s/" % current_user.relation # 只获取当前用户的下级
return reg
调用: 只需要匹配此正则的relation的用户都是下级
备注: DBRef关联查询, 我还是做了保留字段, 因为在很多情况只需要查询上一级和下一级的用户时用到
- 数据库处理用户上下级关系
- 上下级关系
- Spread.js 上下级关系
- windowsAPI验证上下级证书关系
- Hibernate对同表中存在上下级关联关系的映射处理
- dtree实现上下级关系的显示
- 拼上下级关系的json数据格式
- C#TreeView上下级Checked属性关联处理
- 用户关系通讯录数据库设计
- 用树展示上下级关系-jquery+ztree+json的运用
- 中国城市数据 上下级关系 区号 邮编 entity by jpa
- Activiti 生成工作流节点之间的上下级关系
- echarts 结合ajax完成上下级关系图的绘制
- MySQL语句之or/in 对于上下级关系sql用法
- mySql+Hibernate 单表上下级关系数据整理
- 关系数据库及异常处理
- 数据库 - 关系数据库系统的查询处理
- SQL配置用户数据库映射关系
- Spring JDBC学习笔记(3):使用JdbcTemplate来获取数据库表和列的元数据
- 欧拉回路
- android设计模式之单例模式
- AngularJS学习之路(一)AngularJS简单操作
- GestureDetector手势初识
- 数据库处理用户上下级关系
- LB 负载均衡的层次结构
- 2015年蓝桥杯B组C/C++:九数组分数
- 最小生成树——(性质)其最大边权为生成树中最大边权最小的——(例题)承包池塘的青蛙
- AngularJS学习之路(二)AngularJS的表达式
- Hibernate4学习总结(2)--配置形式的集合映射,关联关系映射
- 安卓开发之手机相机(Camera)应用
- 深入理解Java虚拟机——认知Java
- <玩转电商系统>读书笔记