发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 下一页 Go 2

关于J2EE项目中存在的问题,请各位给与解惑,先谢了!

    
2005-07-10 03:12
赞助商链接

问题是这样的:
系统简化的可分为三个角色:
1 学生用户
2 院系用户
3 研院用户
每一种角色用户至少有10人以上。

那请问以下:
1 由于院系的工作人员有10人,每个人都有登录系统的帐号,同可以在不同的工作区同进登录
且每个人都可以给同一个学生填写审核结果,那么,
当院系A工作人员正在给一名学生填写审核结果,还没有提交(指没有提交给服务端)时,
有院系B工作人员又给同一名学生填写审核结果,
当A工作人员这时将审核结果为“通过”提交。
那B工作人员再提交,将会复盖过A工作人员的结果,要避免这种情况,
那我的业务罗辑程序的代码是不是要这么写呢?

方式1 填写院系审核结果逻辑
院系审核结果变量=从数据库中取出院系审核结果
IF 院系审核结果变时 != 空 THEN
将院系审核结果(用户提交的)更新到数据库
ELSE
Throws new 业务异常(“已有院系填写了审核结果,你不能再填写”)
END IF

方式2 填写院系审核结果逻辑
将院系审核结果(用户提交的)更新到数据库

哪一种比较好呢?
问题2 ,由于,院系工作人员一次审核很多学生,所以我们在做系统界面时,将
在页面上有多个学生的输入框,一次向服务器提交多个学生的审核结果,
那当有多个院系工作人员同时使用系统,一次对多个学生提交审核结果,
也会出现复盖结果的情况,我们的代码又如何写呢?有两种方式

方式1 对院系的一次提交的多个学生审核结果作如下操作

FOR 多个学生审核结果
院系审核结果变量=从数据库中取出院系审核结果
IF 院系审核结果变时 != 空 THEN
将院系审核结果(用户提交的)更新到数据库
ELSE
记录哪些学生审核不成功
END IF
END FOR

返回给用户,哪些已有院系填写了审核结果,你不能再填写

方式2 FOR 多个学生审核结果
将院系审核结果(用户提交的)更新到数据库
END FOR
哪一种比较好呢?

第一种方式的编程是最好的,那么,将出现要两访操作表问题,我每一次在更新前都得先访问一次数据库,得到数据库的的记录最新的数据,再根据数据的状态,决定操作。
第二种,就直接更接操作,但会出现复盖数据的情况。

问一下,各位,你们在做这类的系统时,是如何解决这种,多个角色下多个用户,操作同一个数据的业务问题。
万分感谢!

2005-07-11 08:38

提供参考,你这属于应用事务问题,这类似CVS服务器原理,当有老师对学生写评定时,就进行锁定,别的老师再准备写审核时,会禁止其操作,提示其等待其他老师操作完毕,可显示其他老师联系方式等。

这是一个粗粒度的,如果为了方便,再需要细化。总之,需要锁定,锁定可以是一个流程,也可以是,某些字段。

2005-07-12 08:50

谢谢老师的指教,那再请问一下,有什么具体的方法来处理,是不是使用数据库的的锁定呀,还是有其他更好的技术,如果使用我上面所说的第二种方法来处理,应该也是可以的吗?
另外,再请问一下,老师写的那个Jdon架构可以解决这种问题吗,可以我想研究一下,目前,我只要快解决这种问题就可以,还有老师的Jdon架构是免费的吗?谢谢了!

2005-07-12 08:51

说错了,使用我上面提到的第一种写法处理,应该可以的吗?

2005-07-12 10:25

使用支持事务的框架就可以,或者在你的方案上自己加上事务就可以。

Jdon框架是Open soucre,但是不解决这个问题的。

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com