Office中国论坛/Access中国论坛

标题: 浅谈Access表关系 [打印本页]

作者: 浩雨    时间: 2006-9-3 02:39
标题: 浅谈Access表关系



早期的数据库不是关系数据库,而Access是关系数据库。数据库主要是存放或记录现实生活中某些对象或某些事件所发生的信息或数据。而这些信息客观的存在着某些“关系”,比如说“一对一”、“一对多”和“多对多”的关系。当这些信息和数据被存放或记录到数据库中时,它们之间依然有着特定的关系。


早期开发的数据库,可以用一个表来记录所有数据,如同现在的Excel。在长期使用中,人们发现,单表存放数据,必然存在着数据重复输入和保存。重复输入容易产生数据错误,而这类错误很难察觉。重复保存不仅增加文件的字节数,而当重复的数据不相同时,便会让人迷茫,产生置疑!


关系数据库,是多表数据库。它要求人们按数据之间的关系来建立存放数据的容器——表的关系。“一对一”的数据,只要建一个表;“一对多”的数据则要建两个表;而“多对多”的数据只能通过三个表来反映它们之间的关系。“一对一”关系,常反映的是某一对象的不同属性和特征,如人的姓名、性别、身份证号、生日等,而人的年龄则是“一对多”的关系。“一对多”的关系,常反映的是某一对象所发生的事件或行为的信息,如与某家公司的交易、学生的成绩、员工工资的发放、病人每次的就医事件等。“一对多”关系是较为普遍的关系。在Access中,可以建立一个主表和一个相关表,当在主表中建立了主键以及在相关表中建立一个与主键同类型的、相同名的字段,Access便会自动的为两表建立起关系。主表中的信息一次输入便可以在相关表中重复使用。主表中的记录无谓对与错,因为只有一条记录。“多对多”关系,则是两个主表通过与其相链的相关表而反映的。如,在学生成绩中,学生与学科;在销售中,商品与客户;就医时,医生与病人、药品与病人等都是“多对多”的关系。





建立合理“关系”,有助于提高数据库的性能,加快运行速度,便捷查询,为窗体奠定良好的基础。表关系处理不当,数据库也能运行(早期的数据库同样能运行),只是性能差一些,或者用代码来弥补,甚至你还得多学几门编程言语才管用……。





在初学Access时,应该注重表的学习,多琢磨表的设计和表之间的关系,反复推敲每个字段和表。当输入数据后,如果表中有空值,就应该考虑表的设计是否合理。空值给查询带来诸多麻烦,是无奈的表现。如果,建成的表能在Access查询窗口中得到我们所要的数据,那再建窗体时,就不会出现一些莫名其妙的问题了。当能娴熟的设计表和处理正确的表关系后,便可向代码、SQL、DAO、ADO等进军了。





以上是个人的体会仅供参考。


[此贴子已经被作者于2006-9-30 3:20:31编辑过]


作者: lsh225    时间: 2006-9-4 21:29
謝謝,好
作者: piscesboy    时间: 2006-9-7 22:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浩雨    时间: 2006-10-13 22:52
为什么要锁定我??????????????????????????????
作者: 风二娘    时间: 2006-10-14 01:21
就是呀,当建立有些查询时,我搞不懂关系,结果就无法做到了,哎
作者: 浩雨    时间: 2006-10-14 01:31
表关系来自于数据关系。只有弄明白数据之间的关系才能建好表。你也可以设计一个表,填上些数据,然后让Access来“拆分数据库”。
作者: xin3059    时间: 2006-11-14 18:20
说的很好,但我还是不会建啊?????
作者: 浩雨    时间: 2006-11-14 18:30
把你的数据库(主要是表)发上来让大家讨论讨论,有助于Access的学习。
作者: laiguiyou    时间: 2006-11-14 18:31
说得好,
作者: paulga    时间: 2006-11-14 22:50
谢谢
作者: zhikang2007    时间: 2008-12-30 14:16
我也在学表关系。。。但建表的时候提示:在索引或关系的定义中的字段定义 ’任务ID‘无效
作者: zhikang2007    时间: 2008-12-30 14:17
请问怎么处理?
作者: RRGG001    时间: 2008-12-30 15:52
表关系来自于数据关系
作者: xiaorenwu0874    时间: 2008-12-31 15:00
好东西,谢谢分享!!!
作者: ayld    时间: 2010-4-20 21:38
能给个实例讲解最好!




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