zoukankan      html  css  js  c++  java
  • Sql语法高级应用之一:使用sql语句如何实现不同的角色看到不同的数据

    前言

    在常见的管理系统中,通常都有这样的需求,管理员可以看到所有数据,部门可以看到本部门的数据,组长可以看到自己组的数据,组员只能看到自己相关的数据。

    一般人的做法是,根据不同的角色通过if...else嵌套实现。这样做会显得代码过于臃肿。下面分享我的解决方案:

    实现方案

    通过sql语句,配合存储过程一段代码就搞定了,下面附上实现代码:

    sql += " AND (" + adminStr + " OR (" + saleStr + " AND SalesGroupId IN('" + string.Join("','", mgroupList) + "')) OR (" + gmgStr + " AND SalesGroupId = '" + sg.Key + "') OR SalesUserId = '" + user.Id + "')";
    
    return sql;
    

    adminStr:是判断是否是管理员

    saleStr:判断是否是部门

    mgroupList:部门的组列表

    gmgStr:是否是组长(组管理者)

    使用EF+Linq语句实现方案:

    也是一段代码就搞定了,代码简洁而美观。

    PS:欢迎扫描下方二维码或点击链接,加入QQ群

    一群用代码改变世界的

  • 相关阅读:
    常用的算法
    2017前端面试题
    深入了解php opcode缓存原理
    0=='aa'的结果是true
    关于PHP浮点数之 intval((0.1+0.7)*10) 为什么是7
    linux grep命令
    linux awk命令详解
    PHP socket模拟POST请求
    shell编程之sed
    Shell脚本常用判断
  • 原文地址:https://www.cnblogs.com/ydcnblog/p/9290905.html
Copyright © 2011-2022 走看看