当前位置--> 首 页 --> 文 章 -->SourceCode
|
|
※阅读文章※ |
[原创]关系型数据库设计 -- 带例子详解作者: kev [文章出自: www.phpx.com] 作者:Kevin 基于对数据库有一点认识,拿出来和大家分享一下。 因为只是凭记忆写出来,错误在所难免,请大家指正和请勿转贴 例子:一张零售表单,基本内容如下 日期,客户名,客户地址,客户电话,总金额,货物名,数量,单价,此货物总价 设计步骤: 步骤一 1NF - First Normal Form 在这一步中,主要是从上表中把重复的东西分离,另立为一张表。 很明显,“货物名,数量,单价,此货物总价“ 这四个会重复出现的。 如在零售总表中肯定会见到如下的情况 货物名1,数量1,单价1,此货物总价1 货物名2,数量2,单价2,此货物总价2 货物名3,数量3,单价3,此货物总价3 ...... 对所有的表都要做这样的分离后,再对每个表加上(指定)一个主键(primary key, 简称 pk)后,我们就完成了这一步了。 现在这个例子我们有两张表, 用括号的是外加的, 带星号(*)的是pk。 总表:字段如下 (order_id*), 日期,客户名,客户地址,客户电话,总金额 分离出的表 - 货物表:字段如下 (product_id*), 货物名,数量,单价,此货物总价 步骤二 2NF - Second Normal Form 在这一步中,对每一个表中的字段作分析,主要是两种情况 - 把计算的字段和与pk 无关的字段分离 如在总表中,“客户名,客户地址,客户电话“ 明显就不属于pk - order_id 的,所以要把他们分开。 另外,“总金额“ 和 “此货物总价“ 是通过计算出来的,所以应把他们也从表中删除,但为了方便日后的设计,可以在设计阶段把他们保留。但要在后面加上(计算)以作识别。 ****要提醒一点的就是对分离出来的新表要从第一步重新分析,以保证他们符合1NF 的规定*** 现在的表如下,共 3 个 总表:字段如下 (order_id*), 日期,总金额(计算) 货物表:字段如下 (product_id*), 货物名,数量,单价,此货物总价(计算) 分离出的表 - 客户表:字段如下 (customer_id*),客户名,客户地址,客户电话 这一步后,我们就可以看到了一个比较清晰的总体了。下一步是 3NF。 过了这个周末看看大家反应如何再说 待续..... happyBot自动摘抄自喜悦村精华帖,查看原帖获得完整内容 文章加入时间: 2004-11-17 15:09:16 责任编辑: w9 (3286 人次查阅) |