创建数据库表即是一种学识也同样是一种技巧。用户需求方面的丰富知识是任何数据库项目的首要需求。第3 章中将讨论把数据库设计规则应用于创建Access 表的细节问题。同时,我们还要关注一下创建基本Access 表所需的步骤。在以下各部分内容中,用户还可以学习到向Access数据库添加表的过程,包括相对比较复杂的选择适当数据类型以及在表中分配各个字段的问题。
在决定使用Access 工具向数据库添加表前,先在纸上规划表是个不错的办法。将很多表,尤其是一些小表添加到数据库之前并不需要事先考虑太多问题。毕竟,设计一个包含例如城市和州等查询信息的表并不需要大量的规划工作。然而,更为复杂的实体(例如客户和产品)通常需要大量的思考和工作来实现。
尽管可以通过人机对话,而不是事先考虑的方式来创建表,但仔细规划数据库系统仍然是个不错的办法。用户可以在以后进行更改,但是这么做很费时: 一般来说,如果不在开始时进行完善的规划,系统将变得相对难以维护。在开始之前,应该了解一下袤的设计过程。
在以下各部分内容中,我们将在创建新数据库时研究Access 添加的新空白表。了解向Access数据库添加新表的步骤非常重要。相对以前版本的Access. 添加表所需的步骤发生了巨大的改变,因此甚至经验丰富的开发人员也很希望阅读以下各部分的内容。
2.4.1 命名约定的重要性
随着数据库规模和复杂性不断增加,为数据库中的对象建立命名约定的需求日益增大。像大家所了解的那样,对象名称的更改传播到了整个数据库。即使打开"名称宇段更正选项"选项("office按钮" -> "Access 选顶"->"当前数据库" -> "名称宇段更正选项"),Access也只能纠正最为明显的名称更改。更改表的名称事实上会中断所有使用表信息的查询、窗体和报表。最好的方法就是在开始建立Access 数据库时采用合理的对象名称以及使用命名约定,并且在整个项目过程中坚持该命名约定。
Access 对数据库对象名称分配的约束非常有限.因此,费全有可能将两个明显不同的对缘(例如,窗休和报表,或者表和宏)命名为同一个名称(由于表和查询在数据库占了同一个命名空间,所以不能将表和查询命名为同一名称〉。
尽管像Contact 和Order 这样简单的名称已经够用,但随着数据库规模和复杂性的不断增加,用户可能会对某个特定名称是指哪个对象感到困惑。例如,本书中还包含了通过代码和宏来操作数据库对象。在使用Access 2007 内建的编程语言Visual Basic for Applications (VBA) 时,已引用的对象之间不能存在模糊和海淆。将窗体和报表同时命名为Contact 会造成用户或者代码的混淆。
最简单的命名约定就是在对象名称前加上表明对象类型的3 个字符或者4 个字符的字符串。
使用该约定后,表名称前会加上tbl 而查询名称前会加上qry。窗体、报表、宏和模块的前缀分别为frm 、rpt 、mcr 和bas 或者modo本书中最复杂的对象名称出现在混合大小写中: tblBookOrders 、tblBookOrderDetails等。大多数人都认为相对于全部为大写或者全部为小写的名称八例如TBLBOOKORDERS 或者tblbookorderdetails1,混合大小写名称中出现的字符更易于理解和记忆。
而且有时我们会对数据库对象使用非正式的引用。例如,在前一个例子中包含联系人信息表的正式名称为tblContactss ,而对该表的非正式引用可能会是"联系人表"。
大多数情况下,用户还会看到数据库对象的正式名称。应用程序开发人员所面临的挑战之一就是提供一个无缝的并且能够隐藏所有支持用户界面的数据管理和数据存储实体的用户界面。用户可以轻松地通过控制出现在窗体、报表和其他用户界面组件的标题栏和表面的文本来隐藏数据结构和界面成分的实际名称。
利用Access 许可的长对象名称为表、查询、窗体和报表赋予描述性的、内容充实的名称。对于为什么要在Contactlnformation 同样易于理解和识别时要把表名称限定为Conlnfo ,这一点并没有具体的理由。
当然,描述性的名称以可以走向极端。但是在同样可以将窗体命名frmUpdatelnfo 时将其命名为frmUpdateContactlnformation 并无意义。相对于短名称而言,长名称更容易出现拼写错误或者被读错,需要对此做出判断。
最后,尽管Access 允许使用空格,但应该尽可能地避免空格的使用。空格并不能增加可读性,却会造成重大的问题,特别是在升迁到客户端-服务器环境或者同时使用OLE 和其他应用程序时。
即使不打算将Access 应用程序扩展到客户端·服务器或者将OLE 或者DDE 自动化功能合并到应用程序中,还是应该培养不要在对象名称中使用空格的习惯。