我们的项目是一个具有工作流特性的B/S系统;现在处于功能测试阶段,前几天一个同事提出一个问题:
系统中的很多工作都必须有步骤的进行,比如,先做计划,然后实施,再查看结果。
系统中的用户权限分为浏览和操作,用户在模块中的权限是交错的,在一个模块可以操作而在另一个模块
只能浏览操作结果。
现在的情况是如果在同一时间有两个或多个对同一模块具有操作权限的用户在这一模块中进行操作的话,可能会引起
操作结果冲突的现象;比如A和B两个人都可以做发电计划,A、B两个人如果在同一时间都给电厂分配电量,那么电厂接到的
发电计划会冲突或者造成数据丢失!
现在我们想到的解决方法是
1.在数据库中给每一个模块建立一个操作步骤存储表,根据步骤标志位的判断解决冲突!
2.在服务器上作一个托盘,实时检测用户登录,当有一个用户在这一模块中进行操作时,进入这一模块的另一用户不管权限大小都
只分配浏览权限,并给用户以提示!
3.通过权限控制,两个对同一模块都具有操作权限的用户,谁先登录本模块谁就有操作权,后登录的只有浏览权;设定先登录用户
使用时间,时间一到再进行操作就需要重新登录,再进入时如果已经有用户在操作就给他分配浏览权限!
第一种方法实现最简单,但是数据交互量增加,交互频繁!
第二种方法实现起来应该比较麻烦,但是更能符合需求;
最后一种缺乏人性化!
请知各位是怎样解决这一问题的?请不吝赐教!
请积极拍砖!
系统中的很多工作都必须有步骤的进行,比如,先做计划,然后实施,再查看结果。
系统中的用户权限分为浏览和操作,用户在模块中的权限是交错的,在一个模块可以操作而在另一个模块
只能浏览操作结果。
现在的情况是如果在同一时间有两个或多个对同一模块具有操作权限的用户在这一模块中进行操作的话,可能会引起
操作结果冲突的现象;比如A和B两个人都可以做发电计划,A、B两个人如果在同一时间都给电厂分配电量,那么电厂接到的
发电计划会冲突或者造成数据丢失!
现在我们想到的解决方法是
1.在数据库中给每一个模块建立一个操作步骤存储表,根据步骤标志位的判断解决冲突!
2.在服务器上作一个托盘,实时检测用户登录,当有一个用户在这一模块中进行操作时,进入这一模块的另一用户不管权限大小都
只分配浏览权限,并给用户以提示!
3.通过权限控制,两个对同一模块都具有操作权限的用户,谁先登录本模块谁就有操作权,后登录的只有浏览权;设定先登录用户
使用时间,时间一到再进行操作就需要重新登录,再进入时如果已经有用户在操作就给他分配浏览权限!
第一种方法实现最简单,但是数据交互量增加,交互频繁!
第二种方法实现起来应该比较麻烦,但是更能符合需求;
最后一种缺乏人性化!
请知各位是怎样解决这一问题的?请不吝赐教!
请积极拍砖!