下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库设计核心原则罗代均一、3NF第三范式通常认为,第三范式在性能,扩展性和数据完整性方面达到了最好平衡. 通常认为,第三范式在性能,扩展性和数据完整性方面达到了最好平衡.有以下几个要点。有以下几个要点。1.一个表只描述一个单一的事物(实体。一个表只描述一个单一的事物2.表内的每一个值在整个数据库只出现一次(外键除外2.表内的每一个值在整个数据库只出现一次(外键除外。表内的每一个值在整个数据库只出现一次3.表内的每一行都应该被唯一的标识(有唯一主键。3.表内的每一行都应该被唯一的标识(有唯一主键。表内的每一行都应该被唯一的标识4.表内不存储与主键无关的信息。表内不存储与主键无关的信息二、字段设
2、计技巧1.确保表中没有计算字段计算字段的值,是由其他字段的值计算而来,当你更新其他字段的时候,很容易忽略同时更新这个计算字段,造成数据的错误。2.确保这个字段的值只有一个例如下表Users:用户ID 用户名称电话号码001 robin 1358888888/028-*/电话号码的值就不只一个,因此电话字段不能放在users表中,解决办法是增加一个表Phone 电话号码ID 用户ID 电话号码001 001 13588888 002 001 028-888888这个表就是Users的从表,用户ID是外键. 还有地址address,和电话的情况类似。3.尽可能地细分字段如下雇员表(employee
3、雇员ID 雇员名称地址emp_id emp_name emp_address 001 Robin四川省成都市高新区天泰路1号这里的emp_address就可以细分,改进的表如下雇员ID 雇员名称国家省/直辖市地/市001 罗代均china 四川成都区/县高新区街道天泰路1号这样更方便我们编辑和统计,有利于保证数据的完整性。三数据表设计技巧1.为表内的每一个字段添加表名缩写例如客户表customer cust_id cust_name cust_type cust_city .这样书写SQL语句时,很容易就知道这个字段属于哪个表,代表什么含义。例如cust_city ,就不会和employee表
4、的emp_city混淆了。2.为每一个表添加如下字段last_update_by 最后修改人last_update_date 最后修改时间这样方便以后数据错误时,查找相关责任人,以及错误发生时间。3.添加删除标记字段在关系数据库中,表之间的关系错综复杂,删除一条记录,往往会影响很多其他的表,建议添加删除标记字段,删除数据时,只是将这行标志为删除即可。例如,客户表(customercust_id cust_name status001 罗代均A A:Active,活动的,有效的002 罗曾英I I:Inactive ,无效的其他的表,比如送货单,里面有cust_id,如果我们将002客户删除,那
5、么这张送货单也就不能查看了.删除002客户时,只需要将其状态更改为I即可. 我们还可以编写单独的数据清除程序,将这些标记为删除的数据删除,或者移入历史数据库中等。4.使用无业务含义的数字作为主键首先,关系数据库中,一个表的主键往往会被其它表引用(外键.因此, 任何情况下,都不能允许主键字段被修改.否则,相关表的记录都要相应的修改,这真是噩梦.而且,任何有业务含义的字段,都有被修改的可能,因此不能作为主键, 当然,为了保证数据的完整性,我们可以为必须唯一的字段(可能是一个,或者多个,添加唯一索引.最后,从性能考虑,还有什么比数字查询效率更高呢?这点对于多表连接查询非常重要。例如,以前有些系统使用身份证号码作为主键,但是后来身份证由15 位升为18位,这些系统就面临噩梦了!因此,建议为表添加无业务含义的数字作为主键,SQL Server,MySQL 可以用自增字段, Oracle可以用序列sequence.5.别忘记为外键添加索引大家都知道,系统会自动为主键添加唯一索引。但是外键,需要我们手动添加索引。6.将表的公共部分,导出成一张表,作为其他模块交互的接口。如果表的结构经常变化,那么将这个表中公共的部分抽取出来,单独作为一张表,这样,对表结构的修改,就不会影响到其它关联的模块。例如:将客户表customer表拆分customer_basic和customer_oth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 媒体行业内容创作授权合同
- 城市智能交通管理系统建设合同
- 建材购销合同简单范本
- 协议酒店年度合同
- 标准体育场地租赁合同范文
- 技术开发委托合同范本
- 进出口合同的履行
- 员工借调服务合同
- 道路交通事故纠纷法律知识一本全-记录
- 基于膜解剖的腹腔镜与机器人结直肠肿瘤手术学-随笔
- 外观判定标准
- 江西上饶市2025届数学高二上期末检测试题含解析
- 脑卒中后吞咽障碍患者进食护理团体标准
- 工行人工智能风控
- 2023风电机组预应力混凝土塔筒与基础结构设计标准
- 小学语文阅读教学落实学生核心素养方法的研究-结题报告
- 一年级的成长历程
- 2024年南京铁道职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 正月十五元宵节介绍课件
- 病毒性肺炎疾病演示课件
- 中考英语语法填空专项练习附答案(已排版-可直接打印)
评论
0/150
提交评论