【Access小品】天下本无事--数据冗余问题概论
时 间:2014-04-04 11:40:37
作 者:煮江品茶 ID:10802 城市:武汉
摘 要:【Access小品】天下本无事--数据冗余问题概论
正 文:
Access的初学者最常干的庸人自扰的事情,就是设计很多的冗余字段,几乎没有初学者能避免干这件事情。所以说了无数次不要这样做都没用,这个魔咒总是萦绕在初学者的上空,就像当今的雾霾一样难以治理。
什么是冗余字段呢?看看今天版友zengtao同志的一个问题中的实例。这个实例中有两个表,数据表结构如下:
A表:客户编号(主键),零件图号,零件名称
B表:内部编号(主键),客户编号(外键),零件图号,零件名称,更改信息
zengtao同志的问题是:如何通过窗体将A表的零件图号,零件名称传入B表中?
解决从A表向B表写入数据,有很多的方法,解决起来非常简单。可是当你解决了zengtao同志的这个问题后。过几天,zengtao同志的还会提出另外一个问题:如何删除相同的记录?如果你问他什么是相同的记录?是如何产生的?他一定会告诉你,客户编号相同,零件图号和零件名称重复的记录就是相同记录。由于没有控制好录入的校验,所以搞重复了。这个问题解决了,再过十天半个月,zengtao同志说不定又会提出一个问题:A表中某个客户的零件图号修改了,怎么对B表中的图号做相同修改。继续解决了这个问题,zengtao同志还会没完没了得提出新的问题。
导致zengtao同志苦恼和纠结的根源在什么地方?答案是:数据冗余了!也就是说B表中的零件图号,零件名称两个字段是毫无意义和毫无必要的。如果删除了这两个字段,那也就意味着不给zengtao同志提出一系列问题的机会。连机会都没有了,zengtao同志也就没法胡折腾了。
为什么初学者容易搞出数据冗余的表结构呢?这通常与不理解或不知道数据库呈现数据的方法有关。实际上数据表主要的功能是存储数据,而真正呈现数据更多的是用查询。查询也叫数据视图,你可以把它看成观看数据表的镜子。查询有很强的功能,这些功能中就存在将多个表联系起来呈现数据的能力。
就zengtao同志的数据表来讲,当我们删除B表中的零件图号,零件名称两个字段后,仍然能够透过查询来观察我们需要的数据。我们可以这样干:
Select B.内部编号,B.客户编号,A.零件图号,A.零件名称,B.更改信息
From B inner join A on B.客户编号=A.客户编号
对了,这就是zengtao同志需要看到的结果。注意:是需要看到的!不是需要在B表中实际存在的。这个差异很大。大在什么地方呢?大在zengtao同志不需要再去为同步数据进行任何考虑。天下本无事,何必庸人自扰呢?
From B inner join A on B.客户编号=A.客户编号
对了,这就是zengtao同志需要看到的结果。注意:是需要看到的!不是需要在B表中实际存在的。这个差异很大。大在什么地方呢?大在zengtao同志不需要再去为同步数据进行任何考虑。天下本无事,何必庸人自扰呢?
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access选项卡示例】Ac...(09.09)
- 【Access源码示例】按输入...(09.02)
- 【Access日期区间段查询】...(08.29)
- 【Access日期区间段查询】...(08.27)
- Access怎样才能实现日期时...(08.21)
- 【Access定时打开查询】A...(08.19)
- Access生成固定数量的记录...(08.13)
- Access怎样才能实现日期时...(08.12)
- Access利用导航窗体控件对...(08.03)
学习心得
最新文章
- Access表中的字段名、字段标题...(09.19)
- Access快速开发平台--更改“...(09.18)
- 【中秋及国庆优惠】Access培训...(09.15)
- Access如何将日期型的数值转换...(09.14)
- 英文输入法输入数据中存在单引号引起...(09.11)
- 【Access选项卡示例】Acce...(09.09)
- 让Access光标停留在指定的控件...(09.07)
- 关于Access查询条件里使用通配...(09.06)
- Access报表偷懒制作法--Ac...(09.05)
- Access快速开发平台--窗体数...(09.04)