早期的数据库不是关系数据库,而Access是关系数据库。数据库主要是存放或记录现实生活中某些对象或某些事件所发生的信息或数据。而这些信息客观的存在着某些“关系”,比如说“一对一”、“一对多”和“多对多”的关系。当这些信息和数据被存放或记录到数据库中时,它们之间依然有着特定的关系。
早期开发的数据库,可以用一个表来记录所有数据,如同现在的Excel。在长期使用中,人们发现,单表存放数据,必然存在着数据重复输入和保存。重复输入容易产生数据错误,而这类错误很难察觉。重复保存不仅增加文件的字节数,而当重复的数据不相同时,便会让人迷茫,产生置疑!
关系数据库,是多表数据库。它要求人们按数据之间的关系来建立存放数据的容器——表的关系。“一对一”的数据,只要建一个表;“一对多”的数据则要建两个表;而“多对多”的数据只能通过三个表来反映它们之间的关系。“一对一”关系,常反映的是某一对象的不同属性和特征,如人的姓名、性别、身份证号、生日等,而人的年龄则是“一对多”的关系。“一对多”的关系,常反映的是某一对象所发生的事件或行为的信息,如与某家公司的交易、学生的成绩、员工工资的发放、病人每次的就医事件等。“一对多”关系是较为普遍的关系。在Access中,可以建立一个主表和一个相关表,当在主表中建立了主键以及在相关表中建立一个与主键同类型的、相同名的字段,Access便会自动的为两表建立起关系。主表中的信息一次输入便可以在相关表中重复使用。主表中的记录无谓对与错,因为只有一条记录。“多对多”关系,则是两个主表通过与其相链的相关表而反映的。如,在学生成绩中,学生与学科;在销售中,商品与客户;就医时,医生与病人、药品与病人等都是“多对多”的关系。
建立合理“关系”,有助于提高数据库的性能,加快运行速度,便捷查询,为窗体奠定良好的基础。表关系处理不当,数据库也能运行(早期的数据库同样能运行),只是性能差一些,或者用代码来弥补,甚至你还得多学几门编程言语才管用……。
在初学Access时,应该注重表的学习,多琢磨表的设计和表之间的关系,反复推敲每个字段和表。当输入数据后,如果表中有空值,就应该考虑表的设计是否合理。空值给查询带来诸多麻烦,是无奈的表现。如果,建成的表能在Access查询窗口中得到我们所要的数据,那再建窗体时,就不会出现一些莫名其妙的问题了。当能娴熟的设计表和处理正确的表关系后,便可向代码、SQL、DAO、ADO等进军了。
以上是个人的体会仅供参考。
[此贴子已经被作者于2006-9-30 3:20:31编辑过]
|