摘 要:表的设计---数据的拆分
正 文:
许多初学者经常将其单表操作的概念带入access中,就是用一个表将所有的数据都在一个表中体现出来,造成大量的重复输入数据,而access是一个关系型数据库,因此特别讲求数据的合理规划,“表”是access中存储数据的地方,因此其规划的好坏直接关系到数据库的优与劣,并涉及到将来的维护和发展。现在我来谈谈:表的设计---数据的拆分,与众爱好者分享。
数据拆分的关键点:看数据的性质和什么相关,相关的字段归入同一个表。
1、例如商品的价格,若商品的销售价格是不变的(统一零售价),那价格和商品相关,应归入商品档案表的字段中,需要商品价格时,通过关系来调用。
表设计为:
发票清单:发票号,商品代码,开票数量 商品档案:商品代码,商品名称,含税销售单价。(例见:1.mdb)
2、若价格一般不变,偶尔价格会有变化,那可在商品档案中建立一个价格档案,需要时通过代码调用商品价格做为其默认值。这样在一般的情况下不用再输入,但也可进行修改。
表设计为:
发票清单:发票号,商品代码,开票数量,含税单价 商品档案:商品代码,商品名称,含税销售单价。 (例见:2.mdb)
3、若价格是固定的,但会针对客户进行固定的打折。这折扣比是和客户相关的,应建立在客户档案的表里。而价格是和商品相关的,仍应建立在商品档案中。(例见:3.mdb)
4、若这打折不仅和客户相关,还和产品相关,即某客户购买某商品时的价格或折扣是固定的。那应新建一个表为:客户代码,商品代码,销售单价或折扣额。(例见:4.mdb)
5、若价格由公司定期或不定期的调整的,即价格既和商品相关还和时间相关,同第4点,新建一个表:日期,商品代码,销售单价。每次仅筛选出最后一个日期的商品单价做为商品价格。(例见:5.mdb)
6、当然还有更复杂的前5种情况的组合,根据原则来处理,就能触类旁通,建立好一个好的关系型数据库的表。
示例下载: