这次Access建表规范总结的内容有点特殊——适当冗余。
前面我们一直强调用尽量少的字段表达,高度概括。而这次为什么要说适当冗余呢?
这个冗余处理是针对我们的程序运行效率而言的。
一般来说,字段少说明表结构简洁。然后有一些统计的数据,就用查询得到。这样久而久之可能走偏,会陷入到一种陷阱——“简洁陷阱”。
处于这个陷阱中的你,表现为:表结构相当精简,不同什么金额小计,数量总计的东西都用查询处理。有时候一个程序里面有十多个查询都是最少的。这种程序,一般运行效率都会比较低。
所以我们要适当的做冗余处理,适当添加一些统计用的字段。每次添加记录的时候,顺便更新这些统计字段。待到下次统计的时候,轻轻松松可以拿这些现成的统计数据使用,不用每次都通过查询去计算,提高效率。
还是举个例子吧。这个是销售主子表比较“精简”的结构。
然后,要统计相关数据,再通过查询。
先对子表进行统计:
再建立新的查询:主表和上面子表统计查询
数据少倒是没有感觉,如果数据很多,几十万条,上百万条的话,这样处理将会很慢。
这样每次要通过查询去统计的数据,会比较慢。我们可以使用适当冗余的方式。用表的空间换取时间,分摊统计的时间,提高运行效率。
我们可以添加一些字段:
这样,我们平常想得到一些数据,就可以直接读表,很快的得到我们想要的数据。当然至于这些数据怎么写入进去,这个就看大家自己的了。这个是基本功。主要思路是在新增、修改和删除相应记录的时候,用代码即时统计更新即可。