Office中国论坛/Access中国论坛

标题: Access建表规范总结(四)——适当冗余 [打印本页]

作者: 盗梦    时间: 2014-9-11 11:43
标题: Access建表规范总结(四)——适当冗余
本帖最后由 盗梦 于 2015-6-16 10:07 编辑

       这次Access建表规范总结的内容有点特殊——适当冗余
       前面我们一直强调用尽量少的字段表达,高度概括。而这次为什么要说适当冗余呢?
       这个冗余处理是针对我们的程序运行效率而言的

       一般来说,字段少说明表结构简洁。然后有一些统计的数据,就用查询得到。这样久而久之可能走偏,会陷入到一种陷阱——“简洁陷阱”。
       处于这个陷阱中的你,表现为:表结构相当精简,不同什么金额小计,数量总计的东西都用查询处理。有时候一个程序里面有十多个查询都是最少的。这种程序,一般运行效率都会比较低。
       所以我们要适当的做冗余处理,适当添加一些统计用的字段。每次添加记录的时候,顺便更新这些统计字段。待到下次统计的时候,轻轻松松可以拿这些现成的统计数据使用,不用每次都通过查询去计算,提高效率。

       还是举个例子吧。这个是销售主子表比较“精简”的结构。
       [attach]54572[/attach]

       然后,要统计相关数据,再通过查询。
       先对子表进行统计:
       [attach]54573[/attach]
       [attach]54574[/attach]

       再建立新的查询:主表和上面子表统计查询
       [attach]54575[/attach]
       [attach]54576[/attach]
       数据少倒是没有感觉,如果数据很多,几十万条,上百万条的话,这样处理将会很慢。
       这样每次要通过查询去统计的数据,会比较慢。我们可以使用适当冗余的方式。用表的空间换取时间,分摊统计的时间,提高运行效率

       我们可以添加一些字段:
       [attach]54571[/attach]
       这样,我们平常想得到一些数据,就可以直接读表,很快的得到我们想要的数据。当然至于这些数据怎么写入进去,这个就看大家自己的了。这个是基本功。主要思路是在新增、修改和删除相应记录的时候,用代码即时统计更新即可。

相关文章:
       Access建表规范总结(一)——高度概括
       Access建表规范总结(二)——基础表独立
       Access建表规范总结(三)——主子表拆分
       Access建表规范总结(四)——适当冗余
       Access建表规范总结(五)——辅助字段
       Access建表规范总结(六)——最小信息
作者: todaynew    时间: 2014-9-11 16:52
本帖最后由 todaynew 于 2014-9-11 16:54 编辑

窃以为除所论之外,数据之间的业务关系也是适当冗余的重要因素。以例中单价与金额来讲,实际业务中单价和金额间的处理关系,有可能是金额等于单价乘以数量,也有可能是单价等于金额除以数量(如分摊运杂费、含税单价计算等,此类情形下金额是精确值,单价是近似值)。因此在两种计算关系并存的情况下,也就必须同时在数据库中存有单价和金额字段。
作者: offxiazaiba    时间: 2014-9-11 16:54
写得很好,支持一下
作者: 盗梦    时间: 2014-9-11 17:01
todaynew 发表于 2014-9-11 16:52
窃以为除所论之外,数据之间的业务关系也是适当冗余的重要因素。以例中单价与金额来讲,实际业务中单价和金 ...

确实会有各种各样的情况。
作者: zpy2    时间: 2014-9-12 07:05
不错!支持!
作者: 冚友    时间: 2015-1-30 19:12
学习学习
作者: zbl960    时间: 2015-2-13 14:39
写的十分详细,学习了。谢谢!
作者: cpxie    时间: 2015-5-27 11:29
学习啦  
作者: today_suny    时间: 2016-1-5 22:32
初学 建表的规范  学习了
作者: kuiblue    时间: 2016-8-31 11:35
逻辑清楚,易动简洁,大赞!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3