- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DB3.数据库设计技巧
索引使用原则 唯一索引 主键索引 聚集索引 普通索引 函数索引 索引使用原则 唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。 数据的完整性 主键索引 一般关系型数据库中,表的主键,会自动创建主键索引 主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。 索引使用原则 聚集索引 在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。 如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。 与非聚集索引相比,聚集索引通常提供更快的数据访问速度。 一个表至多只能有一个聚集索引。 索引使用原则 索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑。 下面给出实际中的一些通用的原则: 索引使用原则 在经常用作过滤器的字段上建立索引; 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引; 常用的小型表(数据量少),不必要建索引; 索引使用原则 在不同值较少的字段上不必要建立索引,如性别字段; 对于经常存取的列避免建立索引; 用于联接的列(主健/外健)上建立索引; 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定; 《数据库设计60个技巧》 见文档: Q A 数据库设计技巧 数据库设计技巧 卢旭攀? 2010-9 数据库设计技巧 定义标准的对象命名规范 表设计原则 字段设计原则 键选择原则 索引使用原则 《数据库设计60个技巧》 定义标准的对象命名规范 实体和属性的命名 常用单词进行缩写,在命名过程中,根据语义拼凑缩写,缩写词之间加下划线; 举例: 定义缩写 Sales: Sal 销售 Order: Ord 订单 Detail: Dtl 明细 销售订单明细表:Sal_Ord_Dtl 定义标准的对象命名规范 实体和属性的命名 如果表名或字段名仅有一个单词,建议不缩写 举例 定义缩写 Material: Ma 物品 物品表名: Material 物品编码: Ma_ID 定义标准的对象命名规范 关联类命名 关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名。 举例 表Depart和Employee存在多对多关系 关联表的命名:R_Dept_Emp 定义标准的对象命名规范 视图命名 例如:以vw_开头 存储过程命名 例如:以sp_开头 索引命名 例如:以idx_开头 触发器命名 例如:以tr_开头 定义标准的对象命名规范 命名中其他注意事项 命名都不得超过数据库系统限制; 数据对象、变量的命名都采用英文字符,禁止使用中文命名,绝对不要在对象名的字符之间留空格; 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突; 保持字段名和类型的一致性。 表设计原则 按模块划分设计,模块相对独立 对象职责明确单一 关键字:唯一、不参与业务运算、不被更新 易使用性 领域模型中主表与从表 减少数据冗余与允许适当的冗余 表设计原则 按模块划分设计,模块相对独立 根据系统模块划分,针对每个模块所处理的业务进行模块单元的数据库设计; 不同模块间所对应的数据库表之间的关联应尽可能减少; 不同模块间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键; 确保模块对应的表之间的独立性,为系统或表结构的重构提供可能性。 表设计原则 对象职责明确单一 采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。 对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。 一个对象有且只有一项职责,如果一个对象要负责两个或两个以上的职责,应进行分拆。 表设计原则 关键字:唯一、不参与业务运算、不被更新 根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。 关键字可以是一个属性,也可以是多个属性的集合,不论那种方式,都应确保关键字能够保证唯一性。 在确定关键字时,应保证关键字不会参与业务且不会出现被更新,一种解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。 表设计原则 易使用性 设计出的表要具有较好的使用性,主要体现在查询时是否需要关联多张表且还需使用复杂的SQL技巧。 领域模型中主表与从表 主表与从表是1:n关系 从表与其它对象有关系时,采用弱关系 表设计原则 减少数据冗余与允许适当的冗余 设计出的表要尽可能减少数据冗余,确保数据的准确性,有效的控制冗余有助于提高数据库的性能。 另一方面,对于经常为了提高查询效率,可允许适当的冗余存在。 字段
文档评论(0)