问一个特殊的数据操作问题
在需求中,有一个需求是:对于表修改,要求是保存上次数据及修改痕迹(永久保存历史数据)用来对比
注意,表容量比较大(即,字段比较多).
我的意思是:对于保存上次记录,我想新建一张表,
表结构:id(自增),update_date(记录当前修改的时间点),update_content(原表中所有重要的内容)
对于修改痕迹用来对比,到现在我还没有想出来有什么好方法.
请路过的同胞,帮我看看,有什么好的方法和见解..//我在网上查了好久,也没有查到.唉,郁闷..
我公司用的是spring2.x+hibernate3.x+struts2.x
评论
虽然说是可以建索引 不过还是尽可能的避免比较好吧
我还是觉得我那种方法是可以的
至于说有可能数据量过大
那么可以在插入的时候先在src里过一遍 把两条中相同的字段全清空 或者放上一个特定的标识符以节省空间 然后不相同的字段再正常插入
至于说修改的记录
完全可以在src或者显示的时候来做
没有必要要把"变更内容"或者什么的东西写在数据库里吧
[quote="keenvi"][quote="ddandyy"]建议用两条记录 不要用一条记录的两个字段一条是原记录 一条是新记录也就是 ID TEXT1 TEXT2 1 AA BB 1 AA CC[/quote] ddandyy 朋友的写法只能记录指定的字段,在字段多的情况下不便记录各个字段的修改记录再就是如果字段内容体积大的话,那数据库体积涨速也很快以下为个人由于有字段多在不建立对应字段的修改记录表的话,所有(对每个字段)修改记录放一个表中每改动一次,就记录一次,该几个字段就记录几个字段,记录内容: 被修改的标志topicId, 被修改的列名称colName, 被修改前的值lastText 修改时间lastUpdateTime 主题表: id title content 1 ... 2 ... ... 10 '天上掉馅饼了111(原:天上掉馅饼了)' '为什么会掉下来呢111(原:天上掉馅饼了)' 修改记录表: id topicId colName lastText lastUpdateTime 1 10 title '天上掉馅饼了' 2007-12-10 11:30 第一次标题被修改 2 10 title '天上掉馅饼了000' 2007-12-12 11:30 第二次标题被修改 3 10 content '天上掉馅饼了' 2007-12-12 11:30 第一次修改内容 我在设计数据库的时候,经验很不足,不知道这样设计的是否合理,还请朋友给出更好的方案让我多学习学习[/quote]
谢谢哦,我觉得你这个建议很好,同时把两个问题解决了.我还想提个问题,我的原表中的字段90%以上的都是有可能被修改,那这样,此表就很庞大了,有可能会引发其他问题(如,速度).
[quote="ddandyy"]建议用两条记录 不要用一条记录的两个字段一条是原记录 一条是新记录也就是 ID TEXT1 TEXT2 1 AA BB 1 AA CC[/quote]
我怎么知道那条记录是修改的,如何把修改的记录显列出来??我迷茫
一条是原记录 一条是新记录
也就是
ID TEXT1 TEXT2
1 AA BB
1 AA CC
ddandyy 朋友的写法只能记录指定的字段,在字段多的情况下不便记录各个字段的修改记录
再就是如果字段内容体积大的话,那数据库体积涨速也很快
以下为个人
由于有字段多
在不建立对应字段的修改记录表的话,所有(对每个字段)修改记录放一个表中
每改动一次,就记录一次,该几个字段就记录几个字段,记录内容:
被修改的标志topicId,
被修改的列名称colName,
被修改前的值lastText
修改时间lastUpdateTime
主题表:
id title content
1 ...
2 ...
...
10 '天上掉馅饼了111(原:天上掉馅饼了)' '为什么会掉下来呢111(原:天上掉馅饼了)'
修改记录表:
id topicId colName lastText lastUpdateTime
1 10 title '天上掉馅饼了' 2007-12-10 11:30 第一次标题被修改
2 10 title '天上掉馅饼了000' 2007-12-12 11:30 第二次标题被修改
3 10 content '天上掉馅饼了' 2007-12-12 11:30 第一次修改内容
我在设计数据库的时候,经验很不足,不知道这样设计的是否合理,还请朋友给出更好的方案
让我多学习学习
一条是原记录 一条是新记录
也就是
ID TEXT1 TEXT2
1 AA BB
1 AA CC
表结构(每个表都一样的结果):id(自增),update_date(记录当前修改的时间点),update_content(原表中所有重要的内容)
另外加上update_Id(被修改的表中对应的ID),
再加上update_colName(被修改的表中的字段)
表结构(每个表都一样的结果):id(自增),update_date(记录当前修改的时间点),update_content(原表中所有重要的内容)
另外加上update_Id(被修改的表中对应的ID)
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 45645 次
- 性别:

- 来自: xxxx

- 详细资料
搜索本博客
最近加入圈子
链接
- apache+tomcat配置负载均衡
- Apache,Tomcat集群和负载均衡
- tomcat 负载均衡
- tomcat 负载均衡
- hibernate DAO
- Hibernate 3 Annotations 进阶
- 学习Hibernate之数据缓存
- 实践中整理出tomcat集群和负载均衡
- Java 理论与实践: 动态编译与性能测量
- Java 理论与实践
- AOP,IOC的经讲
- 域模型的分类(robbin)
- Martin Fowler的著作
- Tomcat类加载机制
- 了解Hibernate的FlushMode.NEVER模式
- 在Struts+Spring+Hibernate环境中,由于配置的问题导致的模式失效
- OpenSessionInView的效率问题
- OpenSessionInView详解
- j2ee学习过程
- 中文问题
- cvs配置
- cvs配置2
- cvs命令
- mysql 字符机
- Struts+Spring+Hibernate开发实例
- Spring Framework之最佳实践二
- Spring Framework之最佳实践一
- spring 中文论坛
- 浪羲
- 线程
- xml视频
- web开发
- 书籍下在
- 离散数学
- 计算机教程
最新评论
-
struts2文件下载--遇到一 ...
<param name="contentDisposition"> in ...
-- by gyhgc -
大部分项目都会碰到审批, ...
如果我的多人审批不分顺序呢? 比如某个事件需三个部门的人审批, 但是谁先谁后都没 ...
-- by outh -
请问,我要如何处理我和带 ...
ddandyy 写道早起的虫子 写道我跟你不一样,我也是刚毕业的, 进了一家小公 ...
-- by linwenbin -
大部分项目都会碰到审批, ...
tenking 写道关注中。。。 希望有个示例参考 是用开源的工作流,很多
-- by kjj -
请问,我要如何处理我和带 ...
ddandyy 写道早起的虫子 写道我跟你不一样,我也是刚毕业的, 进了一家小公 ...
-- by ladofwind






评论排行榜