首页 常见数据库设计(2)——历史数据问题之单记录变更

常见数据库设计(2)——历史数据问题之单记录变更

举报
开通vip

常见数据库设计(2)——历史数据问题之单记录变更在各种应用软件中,客户总是希望看到自己操作关键业务的历史数据(更或者是将来的历史数据,如本年计划明年的商品价格),并且要跟踪变化来源于哪一个版本。历史记录,如果我们按某次修改时,需要新增的记录条件的角度来看,如果只需要新增一条记录(如商品价格的变动,一次只变动),我们称之为单记录变更;如果我们需要新增一条记录,并且还需要在不同的表中新增对应的详细记录并且是一对多的关系时(如报价时,我们需要储存报价流水和报价物品清单列表),我们称之为多记录变更。 一,单记录变更、无储存未来历史记录的需求,储存于单表中 付款计划...

常见数据库设计(2)——历史数据问题之单记录变更
在各种应用软件中,客户总是希望看到自己操作关键业务的历史数据(更或者是将来的历史数据,如本年计划明年的商品价格),并且要跟踪变化来源于哪一个版本。历史记录,如果我们按某次修改时,需要新增的记录条件的角度来看,如果只需要新增一条记录(如商品价格的变动,一次只变动),我们称之为单记录变更;如果我们需要新增一条记录,并且还需要在不同的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中新增对应的详细记录并且是一对多的关系时(如报价时,我们需要储存报价流水和报价物品清单列表),我们称之为多记录变更。 一,单记录变更、无储存未来历史记录的需求,储存于单表中 付款计划PayPlan 字段名类型是否可空中文名描述 id char(36) no guid ...其它属性... num int no 版本号在某个项目中递增 is_use int no 是否启用默认0否,1是 use_date datetime yes ischeck int no 是否确认默认0未确认,1确认 checker char(36) yes 确认人 check_date datetime yes 确认日期 说明:用户添加一条数据,未确认时,可以修改、删除。但是当用户确认时(当项目使用工作流时,也可以用工作流替换确认的3个字段), 更新is_use为1(是),并且更新操作人信息。在用户确认完之后,不能添加,修改、删除。需要修改时,则将原有数据复制一份(除主键外),并设置版本号加1,设置is_use和ischeck=0,设置use_date、checker和check_date为NULL,然后修改操作在新的版本中进行,并且系统中使用的依然是前一个版本的数据。当修改流水,确认后,需要先将本类其它的is_use改为0,并且更新自己的is_use为1及其它信息。 二,单记录变更、无储存未来历史记录的需求,储存于多表中(一个主表存储在用记录,另一个子表储存历史记录) 在上一个 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 中,[单记录变更、无储存未来历史记录的需求,储存于单表中],如果当变更频率高中,表中的数据量增大,为了获取在用的那条记录(客户是常用到的就是这个),查询时间会浪费在很多无用的记录上。为了解决无关的数据问题,我们将在用的数据储存于主表中,而变更的历史,储存于子表,这样我们在获取在用记录时,就去除了很多无用的数据。 付款计划PayPlan 字段名类型是否可空中文名描述 id char(36) no guid ...其它属性... num int no 版本号在某个项目中递增 is_use int no 是否启用默认0否,1是 ischeck int no 是否确认默认0未确认,1确认 checker char(36) yes 确认人 check_date datetime yes 确认日期 付款计划PayPlanVar 字段名类型是否可空中文名描述 id char(36) no guid pay_plan_Id char(36) no 付款计划编号,主表的编号 ...其它属性... num int no 版本号在某个项目中递增 is_use int no 是否启用默认0否,1是 ischeck int no 是否确认默认0未确认,1确认 checker char(36) yes 确认人 check_date datetime yes 确认日期 说明:用户添加一条数据,未确认时,可以修改、删除。但是当用户确认时(当项目使用工作流时,也可以用工作流替换确认的3个字段), 更新is_use为1(是),并且更新操作人信息。在用户确认完之后,不能添加,修改、删除。第一次修改时,将主表(PayPlan)数据复制一份到PayPlanVar中,当然也要将版本号加1以及其它状态信息还原,在确认后,将主表再复制一份到历史表中,用作历史数据,然后将本次修改的数据,更新到主表中去,并更新主表的版本号等信息。 第一次修改以后,再需要修改数据,将主表数据复制到子表中,同样版本号加其它信息还原,但在确认后只需要将版本等信息更新回主表即可。 三,单记录变更、有储存未来历史记录的需求,储存于单表 如,当某个供应商在今年就定出明年的商品价格,如果我们商品价格使用的第一或第二种设计方案,我们不得不在明年手工并且在确定的时间内更新价格表。 商品价格表(GoodsPrice) 字段名类型是否可空中文名描述 id char(36) no guid ...其它属性... num int no 版本号 start_time datetime no 开始生效日期 end_time datetime no 结束生效日期
本文档为【常见数据库设计(2)——历史数据问题之单记录变更】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_348501
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:4
分类:互联网
上传时间:2019-01-22
浏览量:86