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群

    一群用代码改变世界的

  • 相关阅读:
    axios
    es6
    $route监听路由变化
    容易挂
    自定义全局组件/插件
    eslintrc.js
    dev-server.js
    webpack-dev-server.js
    怎么消除间隔间的空白字符
    es6语法
  • 原文地址:https://www.cnblogs.com/ydcnblog/p/9290905.html
Copyright © 2011-2022 走看看