你是否感觉到此次金融危机的影响?# ChemEng - 化学工程
b*e
1 楼
要用java实现一个模块,数据存储于数据库,支持oracle和sql server,UI部分要支持
cache修
改。就是说用户打开某个domain object,可以修改这个domain object, 例如add item,
remove item, modify item, and similar to any descendent objects of this
domain object from UI. 在这个过程中,用户可以点击其他页面而离开这个页面,但
是用户做的
的change不能丢掉,当这个用户重新打开这个domain object,他能够继续上次的修改。
当用户点击
save按钮时,所有的修改才真正存储进数据库。如果点击discard,所作修改都丢弃。
我现在能想到的方法有两个,都需要temporary table,基本上的思路是用户的修改放到
临时表里,在
save时同步连个表。第一种办法最简单,就是在打开某一个domain object时把所有相
关数据都拷贝
到临时表,然后所有用户操作都发生在临时表上,另一种只把update操作数据放到临时
表里,add和
delete都在原表上。第一种方法简单但是性能问题很大,第二种性能好,但是实现起来
要复杂。
大家看看有没有其他的办法,其他技术能解决这种问题。如果relational database有
Limitation,可以尝试object oriented database。或者其他任何open source
project提
供这方面的解决方案。
另外要补充的是一次修改的数据量很大,可能涉及到几十万到百万records,所以内存cache可能不
行。
cache修
改。就是说用户打开某个domain object,可以修改这个domain object, 例如add item,
remove item, modify item, and similar to any descendent objects of this
domain object from UI. 在这个过程中,用户可以点击其他页面而离开这个页面,但
是用户做的
的change不能丢掉,当这个用户重新打开这个domain object,他能够继续上次的修改。
当用户点击
save按钮时,所有的修改才真正存储进数据库。如果点击discard,所作修改都丢弃。
我现在能想到的方法有两个,都需要temporary table,基本上的思路是用户的修改放到
临时表里,在
save时同步连个表。第一种办法最简单,就是在打开某一个domain object时把所有相
关数据都拷贝
到临时表,然后所有用户操作都发生在临时表上,另一种只把update操作数据放到临时
表里,add和
delete都在原表上。第一种方法简单但是性能问题很大,第二种性能好,但是实现起来
要复杂。
大家看看有没有其他的办法,其他技术能解决这种问题。如果relational database有
Limitation,可以尝试object oriented database。或者其他任何open source
project提
供这方面的解决方案。
另外要补充的是一次修改的数据量很大,可能涉及到几十万到百万records,所以内存cache可能不
行。