数据库正规化和设计技巧(1)

数据库正规化和设计技巧(1),第1张

数据库正规化和设计技巧(1),第2张

在动态网站的设计中,数据库设计的重要性不言而喻。如果设计不当,查询起来会非常困难,程序的性能也会受到影响。无论你使用的是mySQL还是Oracle数据库,通过形式化的表设计,都可以让你的PHP代码可读性更强,更容易扩展,这也会提高应用程序的性能。

简单来说,规范化就是消除表格设计中的冗余和不协调的从属关系。在本文中,我将通过五个循序渐进的过程告诉你设计中应该知道的形式化技巧。从而建立一个可行且高效的数据库。本文还将详细分析可以使用的关系类型。

这里,假设我们要建立一个用户信息的表,表中存储了用户的姓名、公司、公司地址以及一些个人收藏夹或网址。开始时,您可以定义一个表结构,如下所示:

零状态形式

用户

名称公司公司地址url1 url2

乔ABC 1工作巷abc.com xyz.com

xyz.com abc.com就业街1号吉尔·XYZ

因为没有规范化,所以我们把这种形式的表称为零状态形式的表。注意url1和url2字段——如果我们在应用程序中需要第三个url怎么办?因此,您必须在表中再添加一列。显然,这不是一个好主意。如果你想创建一个可扩展的系统,你应该考虑使用第一种正式形式,并把它应用到表上。

一阶归一化形式

1.消除每个表中的重复组。

2.为每组相关数据建立一个独立的表。

3.使用主键来标识每组相关数据。

上表明显违反了上面第一条的规定,那么第三条的主键是什么意思呢?很简单,它只是向每个记录添加一个新的自动添加的整数值。通过该值,可以区分两个同名的记录。通过应用第一级规范化形式,我们得到下表:

用户

用户名公司公司地址url

1乔ABC 1工作巷abc.com

1乔ABC 1工作巷xyz.com

abc.com就业街1号吉尔·XYZ 2号

xyz.com就业街1号吉尔·XYZ 2号

现在我们的表单可以说是处于形式化的第一层次,已经解决了url字段限制的问题,但是这种处理又带来了新的问题。每当我们在用户表中插入一条记录时,我们都必须重复所有的公司和用户数据。这不仅使数据库变得比以前更大,而且还容易出错。因此,它必须经过第二次规范化过程。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 数据库正规化和设计技巧(1)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情