表结构设计问题 20sgliuzhijie]

发布时间:2017-2-25 3:55:43 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"表结构设计问题 20sgliuzhijie]",主要涉及到表结构设计问题 20sgliuzhijie]方面的内容,对于表结构设计问题 20sgliuzhijie]感兴趣的同学可以参考一下。

本帖最后由 sgliuzhijie 于 2009-09-21 15:59:46 编辑 一个表 ID NAME COST 等字段 记录大约在100W左右 后续还会增加 其中 COST 的字段每月都会变化一次。并且详细的历史记录还要保留, 方法1 如果每次变化都将所有记录复制  记录数会随每月COST 字段改变 大量增加 方法2 如在表上添加每次变化列,也会造成数据库的字段列随之增加。 此表还要关联其他表进行计算和统计。 目前采用的是方法1  , 数据记录并不使很多。计算效率太低。 求个好的结解决方案。

把变化的字段插入一个临时表 然后再导入你的表 可以吗?

两种结构 1   PID  NAME  COST    XIUGAIRIQI   1    AA     55      2008-10-10 2    BB     66      2008-11-10 1    AA     58      2008-11-10 2    BB     67      2008-12-10 1    AA     59      2008-12-10 ..... 2  PID  NAME    2008-10-10COST  2008-11-10COST  2008-12-10COST  .......... 1     AA        55               58              59 2     BB        null             66              67 两种结构 数据量大。 还要关联其他表计算 统计。 找个更好的设计方式。                

不会沉了吧  自己顶一个

cost 列可尝试使用 xml 数据类型。 <cost date='2008-10-10'>55</cost> <cost date='2008-11-10'>58</cost> <cost date='2008-12-10'>59</cost>

楼主可以尝试只将每月修改的记录保存到另外一张表里,当月没有做修改的数据就可以不用再做保存 看楼主的数据应该是每月十号做修改 可以尝试这样建表 PID NAME COST_OLD(修改之前) COST_NEW(修改之后)    XIUGAIRIQI   1    AA       50              55      2008-10-10 2    BB       60              66      2008-11-10 1    AA       60              58      2008-11-10 2    BB       70              67      2008-12-10 1    AA       40              59      2008-12-10

修改一下第二种结构呢。 2  PID  NAME    year     1月COST          2月COST         3月COST  ........12月cost 1     AA     2008      55               58              59                60 2     BB     2009      null             66              67                68

建议使用关键字+序号的方法. 一但该记录数据变化后,整个记录复制成一条新的记录包括新的数据,同时序号加1。 这是目前共商企业基本数据变更的基本做法。

工商企业.

学习

引用 7 楼 dawugui 的回复:建议使用关键字+序号的方法.  一但该记录数据变化后,整个记录复制成一条新的记录包括新的数据,同时序号加1。  这是目前共商企业基本数据变更的基本做法。 这里序号是指版本号吧? 我这边是用版本号解决的,rev 1,2,3.。。 对了,同时加一个判断是否是最新的列 这样可以更快查找数据

建议将这个表改小只保留ID,cost等。Name等不会变的数据列放到其他表去。然后每次变化的明细情况记录在另外的一张表里面。如果那个明细一般情况下不做大规模的查询,或者修改的话,没啥问题的。

该回复于2009-09-25 10:48:40被版主删除

建一个最新表,一个历史表,变化的时候就把该记录写入历史表,最新表不记录历史, 再建一个视图关联两个表用于查询。

用一个XML类型的字段记录上一次的cost.比如用下面的格式 <History>   <Detail>     <UpdateDate>2009-11-01 18:22:10</UpdateDate>     <HistoryCost>100</HistoryCost>   </Detail>   <Detail>     <UpdateDate>2009-12-01 02:12:44</UpdateDate>     <HistoryCost>210</HistoryCost>   </Detail>   ... </History>

跟着大家一起学习来的

上一篇:Sql Server 日期转换问题!!! 20jaic4584808]
下一篇:建数据库自增问题 20wx8849]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。