数据库设计问题(100分)

  • 主题发起人 主题发起人 david_lsh
  • 开始时间 开始时间
D

david_lsh

Unregistered / Unconfirmed
GUEST, unregistred user!
使用工具:sqlserver.
在一个系统中对用户信息表及和它关联的几张表要进行历史信息的保存
(用户的工作周期为1个月.),采用那种方式较好:
1.每月把当前用户信息及其相关表保存为备份表,如:customer_info_200211
2.每月只记录变更用户的信息.
第一种方法会每月在系统中动态产生很多表,时间长了会不会影响数据库性能?
第二种方法能节省空间,但历史的查询等操作sql语句较复杂.
请各位评判一下,那种方法好?
 
时间长了会影响数据库性能
但就这一点来说,也是第一个方法好!
因为每次查询时的数据量小,性能会很高,其它的表关系就不大了!
如果数据多,每次查询时都要牵动整个表,会大大降低性能!
你说呢。
 
可以用sql备份工具将数据备份后,刻录数据,需要时再倒回
 
我觉得要看每月数据变化的比例,才能决定使用第一种方法还是第二种方法。
如果变化的信息在50%以上,强烈建议使用第一种方法。为避免系统中表过多,
可以每年才归一次档,在年表里加一个年月时间戳就可以了,
如:customer_info_2002(year_month,...)。
如果变化的信息在10%以下,强烈建议使用第二种方法。可以这样建立变更表,
连续记录开始月份到结束月份的用户信息。如 customer_info_his(userid,begin_month,
end_month,other_info...)。
至于10%~50%之间,就看你权衡了,:)


 
多人接受答案了。
 
后退
顶部