以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]加载合法数据的办法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191411) |
-- 作者:chnfo -- 发布时间:2024/4/15 14:15:00 -- [求助]加载合法数据的办法 目前系统里很少做有关数据权限过滤的设置。 在实际管理过程中,可能有五花八门的过滤条件。 例如请假,本人填写的请假单,在没有提交之前,上级以及再往后的人是看不到的;上级没有审核提交之前,后续的人也是看不到的 比如门店,销售人员只能看到自己的;店长只能看本店的,总部的人可以看所有的。 解决办法,我考虑有两种方式 (1)用户登录以后,只加载在权限范围内的数据,这样,无论以什么条件筛选,最大的可视范围就是加载出来的数据。这种控制手段最有效 (2)用户登录以后,可以加载所有数据,但通过权限条件,过滤出权限范围内的数据。但这样一来,用户如果点击了工具栏按钮的取消筛选或切换按钮,可能就会把他不应看到的数据显示出来。而且这种方法,对于持续增长的数据(比如生产型企业),全部加载再过滤可能效率会有问题 如果用方案一,该如何加载? 如果用方案二,如何让用户点击工具栏的取消筛选等按钮时,仍然保持初始筛选条件有效(这个可以在取消筛选里设置代码,但如果表太多,那就工作量超大了) 是否还有其它方式呢?
|
-- 作者:有点蓝 -- 发布时间:2024/4/15 14:19:00 -- 参考:http://www.foxtable.com/webhelp/topics/2253.htm,先把权限管理这章的帮助全部过2遍 |
-- 作者:chnfo -- 发布时间:2024/4/21 18:08:00 -- 有些应用场景,例如工程项目中,某个施工标段被监理标段管,也被某些业主代表管,所以,这时候就会设置一个表(例如管理关系)来记载它们的关系,即标段ID、监理标段ID、业主代表处ID 然后具体的业务数据,例如进度数据、计量数据,都标明它是哪个标段的,(如果还把监理标段ID、业主代表处ID冗余进来,也可以,但业务表很多,这样处理感觉有点麻烦了) 然后某个监理登录时,就要通过进度表.标段ID = 管理关系.标段ID 的关联关系,获得监理标段ID,再然后通过user.group = 所获得的监理标段ID,来加载他所管理的这些标段的数据 目前有没有其它的方法来实现,还是说必须各个业务数据都要设置监理标段ID、业主代表处ID数据列?
|
-- 作者:有点蓝 -- 发布时间:2024/4/21 22:30:00 -- 必须各个业务数据都要设置监理标段ID、业主代表处ID数据列 |