在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>文档中心>ASP>文档A0000142 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入
相关文章

利用asp连接远端Oracle数据库方法!

[分享]仿PHP操作数据库的类

ASP与存储过程

自己做的一个数据库添加函数!

SqlServer数据库的备份和恢复措施

HIBERNATE - 符合Java习惯的关系数据库持久化

将数据库(access)升级为sqlserver需要注意的问题

一份ASP学习笔记(连载二)

通过JDBC操纵Oracle数据库LOB字段的几种情况分析

不建立系统DSN,通过JDBCODBC bridge连接数据库
发表文章
数据库设计二三范式

译者:mq_1980     提交人:mq_1980     发布时间:03-04-02     文章类型:翻译     浏览量:1923
参考链结:http://www.jackma.net/    
关键字:数据库|三范式
[本文档没有附件]
字体:    视力保护色: 杏仁黄  秋叶褐  胭脂红  芥末绿  天蓝  雪青  灰  银河白(默认色) [A0000142]

1. 为应用在多条记录的字段建立独立的表格
2. 通过一个foreign key 来关联这些表格的值

我们将url 的值放在一个独立的表格中,这样我们就可以在以后加入更多的数据,而无需担心产生重复的值。我们还通过主键值来关联这些字段:
users

userId  name  company    company_address
1  Joe  ABC    1 Work Lane
2  Jill  XYZ    1 Job Street

urls

urlId  relUserId  url
1  1    abc.com
2  1    xyz.com
3  2    abc.com
4  2    xyz.com

如上所示,我们创建了独立的表格,users 表中的主键userid 现在与urls 表中的foreign key relUserId 关联。现在的情况好象已经得到了明显的改善。不过,如果我们要为ABC 公司加入一个员工记录呢?或者更多,200 个?这样我们就必须重复使用公司名和地址,这明显不够冗余。因此我们将应用第三级正规化方法:

第三级正规化形式

1. 消除不依赖于该键的字段
公司名及地址与User Id都是没有关系的,因此它们应用拥有自己的公司Id:
users

userId  name  relCompId
1  Joe  1
2  Jill  2

companies

compId  company    company_address
1  ABC    1 Work Lane
2  XYZ    1 Job Street

urls

urlId  relUserId  url

1  1    abc.com
2  1    xyz.com
3  2    abc.com
4  2    xyz.com

这样我们就将companies 表中的主键comId 和users 表中名字为relCompId 的foreign key 关联起来,就算为ABC 公司加入200 个员工,在companies 中也只有一条记录。我们的users 和urls 表可以不断地扩大,而无需担心插入不必要的数据。大部分的开发者都认为经过三步的正规化就足够了,这个数据库的设计已经可以很方便地处理整个企业的负担,此看法在大多数的情况下是正确的。

我们可以留意一下URL 的字段--你注意到数据的冗余了吗?如果给用户用户输入这些url 数据的HTML 页面是一个文本框,可任意输入的话,这并没有问题,两个用户输入同样收藏夹的概率较少,不过,如果是通过一个下拉式的菜单,只让用户选择两个url 输入,或者更多一点。这种情况下,我们的数据库还可以进行下一级别的优化--第四步,对于大多数的开发者来说,这一步都是忽略的,因为它要依赖一个很特别的关系--一个多对多的关系,这在我们的应用中是还没有遇到过的.

关于这篇文章的评论 [注意:这里仅仅是给大家提供了一个发表对文章本身看法的地方,如果有疑问,请到论坛提出] 我要提问!
标题
内容
发言
*您尚未以注册用户身份登录,不能发表评论。这里登录
您的位置
  (c)2000-2019 Yup Studio, all rights reserved.  
117.1875