数据库的设计和连接-Dreamweaver构建Blog

第三章 Doking's BLOG 数据库的设计和连接

构建好开发环境后,Doking's BLOG数据库规划是第三步,它也是直接关系到数据库以后是否能够有效运行的要害步骤,也是对一个数据库开发人员的规范要求。

3.1 数据库的规范化

数据库的规范化主要体现在表与表之间的关系、数据结构及存储两大方面。

3.1.1 数据表之间的关系

许多初学者经常认为,建立一个表储存所有数据就可以了。假如这么认为,那经常会造成数据冗余的。图3-1-1是一个数据表,可以看到画在红色圈中的数据是冗余的。

图3-1-1 一个数据表

冗余数据会影响数据库的有效运行,甚至可以把数据库推毁。为减少冗余数据,得把数据分开储存成几个表,并建立表与表之间的连接关系。表与表之间的连接关系,主要有一对多、多对多、一对一三种方式。

一对多关系,它是数据库中最普通的关系类型。这种关系双被称为是父表与子表关系或主表与分表关系。图3-1-2就体现了一种父表与子表关系。在这里,专题表与回复表就是一对多的关系。专题表是父表,回复表是子表,专题表中的一行在回复表可有零行、一行或许多与之对应,而回复表中的每一行都与专题表中的相应的专题对应。

图3-1-2 一对多关系

多对多关系,就是第一张表的每一行可对应第二张表的许多行,同样地,第二张表中的每行也可与第一第表中的许多行相对应。例如,一个专题可以有许多用户回复,一个用户也可以作多次专题回复。这就需要建立第三张表,将专题代码与用户代码连接,这个表就是前两个表的父表。在图3-1-3中,“回复表”就是“专题表”与“用户表”的父表。

图3-1-3 多对多关系

一对一的关系,就是将一个表中的行与另一表中的行连接来。这种关系非常少见,因为如是有的话,还不如把这两个表合为一张表更为合理。

3.1.2 数据结构与储存

数据库的物理结构必须基于逻辑结构建立的,在设计表格、字段和关系时就需记住一些规则。行与列的顺序并不起什么作用,虽然在数据表中,列会有一定的顺序位置,但它们并不以此来代表引用顺序。记录的顺序只有在它们从数据表中取出并送给用时才起作用。SQL会通过参数数据库索引来处理记录的提取顺序。例如,在数据表中,把性别字段放在姓名字段之前,这个错误没什么,只要在采用SQL语句调用这个数据表时,记得把姓名字段调到性别字段之前就可以了。

设计数据表时,分配字段大小要慎重,在够用的情况下,能省就省。假如字段用于储存整数,请用整数或长整数,不用单精度或双精度,假如够用的话,最好建立100字符的文本类型字段,而不要采用备注字段。为什么?假如你不怕高昂的服务器费用、不怕网络数据库运行缓慢,你大可不必理会这些,但它最严重会导致数据库崩溃。