数据库设计的技巧和规范

合集下载

数据库表设计与字段命名的规范与技巧

数据库表设计与字段命名的规范与技巧

数据库表设计与字段命名的规范与技巧在进行数据库设计时,良好的表设计和字段命名规范能够提高数据库的可维护性、可读性和可扩展性。

本文将从数据库表设计和字段命名两个方面介绍相关的规范和技巧。

数据库表设计的规范与技巧1. 表名命名规范表名应该具有描述性且易于理解,使用清晰和具体的单词或短语来描述表的内容。

避免使用缩写和无意义的命名,以提高表名的可读性。

同时,保持表名使用统一的格式,例如使用小写字母或驼峰命名法。

2. 表的规范化在数据库设计时,应该遵循数据库规范化原则,将数据分解成多个表,以最小化数据冗余并提高数据库的性能。

通过将数据存储在多个相关表中,可以减少数据更新的复杂性,并提供更好的数据一致性。

3. 主键的选择每个表应该具有一个主键来确保数据的唯一性。

主键可以是单个字段或组合字段,建议使用自增长的数值型主键。

避免使用实际数据作为主键,因为实际数据可能会发生变化,从而导致主键冲突。

4. 外键关系在数据库中,不同表之间可能存在关联关系。

使用外键可以建立表与表之间的连接,确保数据的完整性。

关系型数据库中的外键用于实现表之间的关联,从而为查询提供了更高的效率和灵活性。

字段命名的规范与技巧1. 字段使用清晰的命名字段名应该具有描述性,能够准确表达字段的含义和用途。

避免使用缩写和无意义的命名,使用清晰的短语或单词来描述字段。

例如,使用"last_name"代替"ln"来表示姓氏字段。

2. 字段名大小写与命名风格保持字段名的大小写一致,可以选择使用全部小写或驼峰命名法。

遵循统一的命名风格可以提高代码的可读性和维护性。

此外,不同的数据库系统对字段名大小写敏感,需注意保持一致性。

3. 使用数据类型前缀为了提高字段的可读性和可维护性,可以为字段名添加数据类型前缀。

例如,使用"str_"表示字符串类型的字段,"int_"表示整型字段。

这样做可以清晰地指示字段的数据类型,方便开发人员和数据库管理员理解表结构。

数据库数据模型设计与规范

数据库数据模型设计与规范

数据库数据模型设计与规范数据库是组织和存储数据的重要工具,而数据模型则是数据库设计的核心部分。

一个好的数据模型设计可以提高数据库的性能和可扩展性,并确保数据的完整性和一致性。

本文将介绍数据库数据模型设计的原则和规范,并提供一些实用的技巧和建议。

一、概述数据库数据模型是描述数据库中数据结构和关系的图形化表示。

它通过定义实体、属性和关系的方式,帮助我们理解和组织数据。

一个合理的数据模型应该满足以下几个基本要求:1. 数据完整性:确保数据的准确性和一致性,避免数据冗余和不一致的情况。

2. 数据访问性能:优化数据库的读写操作,提高数据库的响应速度。

3. 数据扩展性:便于数据库的升级和扩展,适应业务的变化和发展。

4. 数据安全性:确保数据库的数据不会被非法访问、篡改或丢失。

二、数据模型设计原则在进行数据库数据模型设计时,需要遵循以下几个原则:1. 规范化:通过规范化设计,将数据库中的数据分解成更小的表,减少数据冗余,提高数据的一致性。

2. 实体和属性的定义:确定数据库中的实体和属性,并为它们分配适当的数据类型和长度。

3. 主外键关系:通过定义主外键关系,建立不同表之间的连接,确保数据之间的一致性和完整性。

4. 索引的使用:为数据库中的常用查询字段添加索引,加快查询的速度。

5. 数据安全性:在数据库设计中考虑数据的安全性,包括用户权限管理、数据加密等。

三、数据库数据模型设计规范在实际进行数据库数据模型设计时,还需要遵守一些规范和约定,以确保数据库的可读性和可维护性。

1. 表和字段命名规范:使用有意义的表和字段名称,避免使用过长或过于复杂的名称。

可以使用下划线或驼峰命名法。

2. 主键设计:每个表都应该有一个主键来唯一标识每条记录。

常见的主键设计方式包括自增主键、GUID、业务相关的唯一标识等。

3. 字段类型和长度的选择:根据具体业务需求,选择合适的字段类型和长度。

避免使用过大或过小的字段长度,浪费存储空间或导致数据溢出。

数据库表设计与规范化技巧与经验

数据库表设计与规范化技巧与经验

数据库表设计与规范化技巧与经验在设计和规范化数据库表时,有一些技巧和经验可以帮助我们创建高效、易于维护的数据库结构。

下面,我将分享一些关键的技巧和经验:1. 深入了解业务需求在设计数据库表之前,必须充分了解业务需求。

与业务相关的主要实体和其属性应该成为数据库表的主要组成部分。

了解业务需求还可以帮助我们预测将来可能出现的需求变化,并相应地进行设计,以避免不必要的结构修改和数据迁移。

2. 单一职责原则每个数据库表应该遵循单一职责原则,即一个表应该只负责管理一个实体类型的数据。

这样做可以确保数据库结构的清晰性和可维护性。

避免将多个实体类型存储在同一个表中,这样会导致数据冗余和性能问题。

3. 数据类型的选择正确选择适当的数据类型对于数据库性能和数据一致性至关重要。

尽量使用最小的合适数据类型来节省存储空间和提高查询性能。

同时,还要确保数据类型的一致性,例如使用日期时间类型来存储日期和时间数据,而不仅仅是字符串。

4. 主键和外键在设计数据库表时,明确主键和外键是很重要的。

主键是唯一标识表中每个记录的列,而外键用于实现不同表之间的关系。

正确使用主键和外键可以确保数据的完整性和一致性,并且可以帮助我们进行高效的数据查询和关联。

5. 正规化规范化是数据库设计中的重要概念,它有助于减少数据冗余、提高数据一致性和数据更新性能。

在规范化过程中,将数据库分解成更小、更专注的部分,并将其各自关联起来。

这样做可以避免数据的重复和不一致,并提供更好的查询性能。

6. 命名规范为数据库表、列和约束等命名时,应遵循一致的命名规范。

命名应该具有描述性,以便他人能够理解和使用数据库结构。

尽量避免使用过长或过于简单的命名,以免造成混淆或歧义。

另外,还要注意使用可读性强的命名风格,例如采用下划线分隔的命名方式。

7. 索引的使用合理使用索引可以大大加快查询和数据检索的速度。

在设计表时,可以针对常用的查询条件和排序字段添加适当的索引。

但是请注意过多的索引会降低数据的写入性能,因此需要根据实际需求进行权衡。

数据库设计的技术和方法

数据库设计的技术和方法

数据库设计的技术和方法数据库设计是一项非常重要的任务,它涉及到了数据架构的规划、设计和实现等多个方面。

数据库设计技术和方法是一项需要深入研究和实践的工作,本文将介绍数据库设计的技术和方法,以及在实际应用中如何优化数据库设计。

一、数据库设计的主要原则在进行数据库设计之前,需要明确数据库设计的主要原则,以确保设计的完整性、准确性和可维护性。

1、数据规范化数据规范化是数据库设计的核心原则,它可以将数据分为多个表,减少数据冗余性和增强数据的完整性。

一般来说,进行规范化的方法包括将数据分解成多个粒度更小的表,消除冗余数据,并确保每个表都有一个清晰的主键。

2、数据完整性在数据库设计中确保数据的完整性是至关重要的,这意味着所有的数据都应该进行验证,以确保它们是准确的、合法的和一致的。

数据完整性的保证可以通过设计各种规则、约束和触发器来实现。

3、系统的可扩展性数据库应当具有可扩展性属性,这意味着应该在设计中预留可扩展和可变更性。

遵循这一原则可以使数据库在未来的升级与维护中更加方便。

二、数据库设计的技术1、概念结构设计概念结构设计是对数据的规划和定义,包括整个业务的对象、数据流和数据定义等。

其目的是理清业务流程,确定模型及其关系,为后续的物理设计提供思路。

2、逻辑结构设计逻辑结构设计是建立在概念结构设计之上,表现了业务的实现方式,包括数据库结构、实体、关系、数据表和数据类型等。

逻辑设计是基本结构设计宏观描述的过程。

3、物理结构设计物理结构设计是在逻辑结构设计基础上,将数据存储到物理设备上的过程。

包括如何存储数据、哪些数据用哪种数据存储方式,以及如何为在数据访问时提供最高的性能。

三、数据库设计的优化技巧1、优化表结构在数据库设计中,必须仔细分析建立的各个表之间的关系。

这可以通过优化表结构来实现。

可以从减小纵向关系数量、增加横向关联表的数量等方面入手,以减轻表的负载。

2、优化查询语句查询语句是在数据库中查找记录的主要方法。

数据库设计中常见的规范与反范式化方法

数据库设计中常见的规范与反范式化方法

数据库设计中常见的规范与反范式化方法数据库设计是构建一个高效、可扩展和稳定的数据库系统的关键环节。

在设计数据库时,遵循一些常见规范和采用一些反范式化的方法可以提高数据库的性能和可维护性。

本文将介绍数据库设计中常见的规范和反范式化方法,并探讨它们的优缺点及适用场景。

一、常见的规范化方法规范化是一种将数据库设计转化为符合特定规范的过程,它消除了数据冗余和更新异常,提高了数据一致性和完整性。

以下是常见的规范化方法:1. 第一范式(1NF):确保每个实体属性都是不可分割的原子值。

例如,一个学生实体包含学生ID、姓名和电话号码,每个属性都是不能再分割的最小单位。

2. 第二范式(2NF):在满足第一范式的前提下,确保非主属性完全依赖于主键。

如果一个表有一个复合主键,那么非主属性必须完全依赖于这些复合主键,而不是依赖于其中的一部分。

3. 第三范式(3NF):在满足第二范式的前提下,确保非主属性不传递依赖于其他非主属性。

如果一个非主属性只依赖于主键,而不依赖于其他非主属性,那么该表满足第三范式。

常见的规范化方法可以有效地减少冗余数据,提高数据的整合性与一致性。

但是,过度规范化可能会导致关联查询变得复杂,性能下降。

因此,在设计数据库时,需要权衡规范化与性能之间的平衡。

二、反范式化方法反范式化是通过在设计过程中引入或保留冗余数据,来提高数据库性能和查询效率的一种方法。

以下是常见的反范式化方法:1. 合并表:将多个表合并成一个表,这样可以减少关联操作的次数,提高查询效率。

但是,合并表可能会导致数据冗余增加,增加数据更新的难度和风险。

2. 数据缓存:将经常被查询的数据缓存到内存或其他高速存储设备中,避免频繁的磁盘访问。

这样可以显著提高查询速度,但同时需要额外的资源。

3. 表分区:将表分成多个较小的分区,每个分区独立进行管理和维护。

这样可以减少查询的数据量,提高查询效率。

但是,分区可能导致数据分布不均衡,增加了维护和管理的复杂度。

数据库的设计方法、规范与技巧

数据库的设计方法、规范与技巧

数据库的设计⽅法、规范与技巧⼀、数据库设计过程 数据库技术是信息资源管理最有效的⼿段。

数据库设计是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,有效存储数据,满⾜⽤户信息要求和处理要求。

数据库设计中需求分析阶段综合各个⽤户的应⽤需求(现实世界的需求),在概念设计阶段形成独⽴于机器特点、独⽴于各个DBMS产品的概念模式(信息世界模型),⽤E-R图来描述。

在逻辑设计阶段将E-R图转换成具体的数据库产品⽀持的数据模型如关系模型,形成数据库逻辑模式。

然后根据⽤户处理的要求,安全性的考虑,在基本表的基础上再建⽴必要的视图(VIEW)形成数据的外模式。

在物理设计阶段根据DBMS特点和处理的需要,进⾏物理存储安排,设计索引,形成数据库内模式。

1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。

需求分析的重点是调查、收集与分析⽤户在数据管理中的信息要求、处理要求、安全性与完整性要求。

需求分析的⽅法:调查组织机构情况、调查各部门的业务活动情况、协助⽤户明确对新系统的各种要求、确定新系统的边界。

常⽤的调查⽅法有:跟班作业、开调查会、请专⼈介绍、询问、设计调查表请⽤户填写、查阅记录。

分析和表达⽤户需求的⽅法主要包括⾃顶向下和⾃底向上两类⽅法。

⾃顶向下的结构化分析⽅法(Structured Analysis,简称SA⽅法)从最上层的系统组织机构⼊⼿,采⽤逐层分解的⽅式分析系统,并把每⼀层⽤数据流图和数据字典描述。

数据流图表达了数据和处理过程的关系。

系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。

数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,⽽不是数据本⾝。

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(⾄少应该包含每个字段的数据类型和在每个表内的主外键)。

数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,⾼峰期流量} 数据存储描述={数据存储名,说明,编号,流⼊的数据流,流出的数据流, 组成:{数据结构},数据量,存取⽅式} 处理过程描述={处理过程名,说明,输⼊:{数据流},输出:{数据流}, 处理:{简要说明}} 2. 概念结构设计阶段 通过对⽤户需求进⾏综合、归纳与抽象,形成⼀个独⽴于具体DBMS的概念模型,可以⽤E-R图表⽰。

数据库字段设计与规范化的技巧与经验

数据库字段设计与规范化的技巧与经验

数据库字段设计与规范化的技巧与经验在数据库设计过程中,字段的设计与规范化是非常关键的一部分。

一个良好设计的数据库可以提高数据的准确性、可靠性和查询效率。

本文将介绍一些关于数据库字段设计与规范化的技巧和经验,以帮助您进行更好的数据库设计。

1. 命名规范在设计数据库字段时,一个好的命名规范可以使得字段名称更加清晰和可读。

以下是一些常用的命名规范:- 采用有意义的字段名称:字段名称应该具有一定的含义,能够直观地表达字段所存储的数据。

- 使用小写字母和下划线:一般情况下,字段名称使用小写字母和下划线的组合,例如:user_id、first_name等。

- 避免使用数据库关键字:确保字段名称不与数据库的关键字冲突,以免造成不必要的麻烦。

- 一致性:保持字段命名的一致性,避免使用不同的命名风格和规范。

2. 数据类型选择正确选择数据类型可以节省存储空间,提高查询效率,同时也能提高系统的性能和扩展性。

以下是一些常见的数据类型选择技巧:- 使用最小的数据类型:尽可能地使用最小的数据类型来存储数据,例如使用INT代替BIGINT,使用DATE代替DATETIME等。

这样可以减少存储空间和提高查询速度。

- 避免使用字符串类型存储数字:如果字段存储的是数值类型的数据,应当选择相应的数值类型,而不是使用字符串类型存储。

- 考虑国际化和本地化:根据需求考虑字段是否需要支持国际化和本地化,选择合适的字符集和排序规则。

3. 主键设计主键是用来唯一标识数据库表中的每一行数据的。

一个好的主键设计可以提高系统的性能和扩展性。

以下是一些主键设计的技巧:- 单一主键:一个表最好只有一个主键,以保持数据的一致性和完整性。

- 使用自增长主键:对于具有唯一性标识的字段,最好使用自增长主键。

这样可以避免人工设置主键的麻烦,并提高数据库的性能。

- 避免使用业务字段作为主键:尽量避免使用具有业务含义的字段作为主键,以免在今后的业务需求变更中造成麻烦。

掌握数据库设计的原则与技巧

掌握数据库设计的原则与技巧

掌握数据库设计的原则与技巧在当今数字化的时代,数据已经成为企业和组织运营的核心资产之一。

而数据库作为存储和管理数据的关键工具,其设计的合理性和有效性直接影响着系统的性能、可扩展性和数据的完整性。

因此,掌握数据库设计的原则与技巧对于开发高质量的应用程序和确保数据的高效管理至关重要。

数据库设计的原则1、数据完整性数据完整性是指确保数据库中的数据准确、一致和可靠。

这包括实体完整性(确保表中的每行都有唯一的标识符)、参照完整性(确保表之间的关系正确)和域完整性(确保数据的值在预定义的范围内)。

例如,在一个学生成绩管理系统中,学生表中的学号必须是唯一的,课程表中的课程编号也必须是唯一的。

同时,成绩表中的成绩必须在 0 到 100 之间。

2、数据一致性数据一致性是指在数据库的不同部分和不同操作中,数据保持相同的含义和格式。

为了实现数据一致性,需要在设计时定义明确的数据规则和约束条件。

比如,在一个库存管理系统中,如果一个商品被出库,那么库存数量应该相应地减少,而且在任何查询库存的操作中,都应该得到相同的准确数量。

3、最小冗余冗余数据是指在数据库中多次重复存储相同的信息。

过多的冗余会导致数据不一致、存储空间浪费和更新操作的复杂性增加。

然而,在某些情况下,适当的冗余可以提高查询性能。

例如,在一个订单管理系统中,可以在订单详情表中存储商品的名称和价格,而不是每次查询都从商品表中获取,这样可以减少表连接的操作,但需要确保在商品信息发生变化时能够及时更新。

4、可扩展性设计的数据库应该能够轻松适应未来数据量的增长和业务需求的变化。

这意味着在设计时要考虑到可能的扩展方向,例如添加新的表、字段或关系。

例如,如果一个电商平台预计未来会增加新的商品类别,那么在设计数据库时应该预留足够的灵活性,以便能够方便地添加相关的表和字段。

5、性能优化数据库的性能是设计时需要重点考虑的因素之一。

这包括合理选择数据类型、创建合适的索引、优化查询语句等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库设计的技巧和规范第1 部分- 设计数据库之前1、调研客户的工作环境或研究已有的系统在设计一个新数据库时,你不但应该仔细研究业务需求而且还要考察现有的系统。

大多数数据库项目都不是从头开始建立的;通常,机构内总会存在用来满足特定需求的现有系统(可能没有实现自动计算)。

显然,现有系统并不完美,否则你就不必再建立新系统了。

但是对旧系统的研究可以让你发现一些可能会忽略的细微问题。

一般来说,考察现有系统对你绝对有好处。

2、定义标准的对象命名规范一定要定义数据库对象的命名规范。

对数据库表来说,可给表的别名定义简单规则,可用项目缩写来给表名打前缀,如cjgl_S。

表内的列[字段]要针对键采用一整套设计规则。

比如,如果字段是数字类型,你可以用_n作为后缀;如果是字符类型则可以采用_c后缀。

对列[字段]名应该采用标准的前缀和后缀。

再如,假如你的表里有好多“money”字段,你不妨给每个列[字段]增加一个_m 后缀。

还有,日期列[字段]最好以d_作为名字打头。

3、在物理实践之前进行逻辑设计在深入物理设计之前要先进行逻辑设计。

随着大量的case 工具不断涌现出来,你的设计也可以达到相当高的逻辑水准,你通常可以从整体上更好地了解数据库设计所需要的方方面面。

4、理解客户需求在你百分百地确定系统从客户角度满足其需求之前不要在你的ER(实体关系)模式中加入哪怕一个数据表。

了解你的用户的业务需求可以在以后的开发阶段节约大量的时间。

一旦你明确了业务需求,你就可以自己做出许多决策了。

一旦你认为你已经明确了业务内容,你最好同客户进行一次系统的交流。

采用客户的术语并且向他们解释你所想到的和你所听到的。

同时还应该用可能、将会和必须等词汇表达出系统的关系基数。

这样你就可以让你的客户纠正你自己的理解然后做好下一步的ER设计。

看起来这应该是显而易见的事,但需求就是来自客户(这里要从内部和外部客户的角度考虑)。

不要依赖用户写下来的需求,真正的需求在客户的脑袋里。

你要让客户解释其需求,而且随着开发的继续,还要经常询问客户保证其需求仍然在开发的目的之中。

一个不变的真理是:“只有我看见了我才知道我想要的是什么”必然会导致大量的返工,因为数据库没有达到客户从来没有写下来的需求标准。

而更糟的是你对他们需求的解释只属于你自己,而且可能是完全错误的。

5、创建数据字典和ER图一定要花点时间创建ER图和数据字典。

其中至少应该包含每个字段的数据类型和在每个表内的主外键。

创建ER图和数据字典确实有点费时但对其他开发人员要了解整个设计却是完全必要的。

越早创建越能有助于避免今后面临的可能混乱,从而可以让任何了解数据库的人都明确如何从数据库中获得数据。

有一份诸如ER图等最新文档其重要性如何强调都不过分,这对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名。

对以后设计SQL语句来说这是完全必要的。

6、创建模式一张图表胜过千言万语:开发人员不仅要阅读和实现它,而且还要用它来帮助自己和用户对话。

模式有助于提高协作效能,这样在先期的数据库设计中几乎不可能出现大的问题。

模式不必弄的很复杂;甚至可以简单到手写在一张纸上就可以了。

只是要保证其上的逻辑关系今后能产生效益。

7、从输入输出下手在定义数据库表和字段需求(输入)时,首先应检查现有的或者已经设计出的报表、查询和视图(输出)以决定为了支持这些输出哪些是必要的表和字段。

举个简单的例子:假如客户需要一个报表按照邮政编码排序、分段和求和,你要保证其中包括了单独的邮政编码字段而不要把邮政编码存放在地址字段里。

8、报表技巧要了解用户通常是如何报告数据的:批处理还是在线提交报表?时间间隔是每天、每周、每月、每个季度还是每年?如果需要的话还可以考虑创建总结表。

第2 部分- 设计表和字段1、采用有意义的字段名可使用缩写字段名,但请尽可能地把字段描述的清楚些。

当然,也别做过头了,比如customer_shipping_address_street_line_1,虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。

2、标准化和数据驱动数据的标准化不仅方便了自己而且也方便了其他人。

比方说,假如你的用户界面要访问外部数据源(文件、XML文档、其他数据库等),你不妨把相应的连接和路径信息存储在用户界面支持表内。

还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。

但标准化不能过头,3NF通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。

简单来说,3NF规定:* 表内的每一个值都只能被表达一次。

* 表内的每一行都应该被唯一的标识(有唯一键),别忘了定义主、外键。

* 表内不应该存储依赖于其他键的非键信息。

遵守3NF标准的数据库具有以下特点:有一组表专门存放通过键连接起来的关联数据。

比方说,某个存放客户及其有关定单的3NF数据库就可能有两个表:customer 和order。

order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向customer表里包含该客户信息的那一行。

更高层次的标准化也有,但更标准是否就一定更好呢?答案是不一定。

事实上,对某些项目来说,甚至就连3NF都可能给数据库引入太高的复杂性。

3、给文本字段留足余量比如客户CustID的文本类型字段等都应该设置得比一般想象更大,因为时间不长你多半就会因为要添加额外的字符而难堪不已。

比方说,假设你的客户CustID为10 位数长。

那你应该把数据库表字段的长度设为12 或者13 个字符长。

这算浪费空间吗?是有一点,但也没你想象的那么多:一个字段加长3 个字符在有1 百万条记录,再加上一点索引的情况下才不过让整个数据库多占据3MB的空间。

但这额外占据的空间却无需将来重构整个数据库就可以实现数据库规模的增长了。

身份证的号码从15 位变成18 位就是最好和最惨痛的例子。

4、字段命名技巧我们发现,假如你给每个表的列[字段]名都采用统一的前缀,那么在编写sql 表达式的时候会得到大大的简化。

这样做也确实有缺点,比如破坏了自动表连接工具的作用,后者把公共列[字段]名同某些数据库联系起来,不过就连这些工具有时不也连接错误嘛。

举个简单的例子,假设有两个表customer 和order:customer 表的前缀是cu_,所以该表内的子段名如下:cu_name、cu_id、cu_surname、cu_initials 和cu_address 等。

order 表的前缀是or_,所以子段名是:or_id、or_cust_id、or_quantity 和or_description 等。

这样从数据库中选出全部数据的sql 语句可以写成如下所示:select * from customer, order where cu_surname = "myname" ;and cu_id = or_cust_id and or_quantity = 1在没有这些前缀的情况下则写成这个样子(用别名来区分):select * from customer, order where customer.surname = "myname" ;and customer._id = order.cust_id and order.quantity = 1第3 部分- 保证数据的完整性1、用约束而非商务规则强制数据完整性如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。

假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。

如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。

除非你的字段命名很冗长,否则字段名本身还不够。

只要有可能,请采用数据库系统实现数据的完整性。

这不但包括通过标准化实现的完整性而且还包括数据的功能性。

在写数据的时候还可以增加触发器来保证数据的正确性。

不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。

2、定义完整性规则(实体完整性和参照完整性)没有好办法能在无效数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。

激活数据库系统的完整性规则。

这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。

3、关系如果两个实体之间存在多对一关系,而且还有可能转化为多对多关系,那么你最好一开始就设置成多对多关系。

从现有的多对一关系转变为多对多关系比一开始就是多对多关系要难得多。

4、采用视图为了在你的数据库和你的应用程序代码之间提供另一层抽象,你可以为你的应用程序建立专门的视图而不必非要应用程序直接访问数据表。

这样做还等于在处理数据库变更时给你提供了更多的自由。

4、给数据保有和恢复制定计划考虑数据保有策略并包含在设计过程中,预先设计你的数据恢复过程。

采用可以发布给用户/开发人员的数据字典实现方便的数据识别同时保证对数据源文档化。

编写在线更新来“更新查询”供以后万一数据丢失可以重新处理更新。

5、用存储过程让系统做重活解决了许多麻烦来产生一个具有高度完整性的数据库解决方案之后,我决定封装一些关联表的功能组,提供一整套常规的存储过程来访问各组以便加快速度和简化客户程序代码的开发。

数据库不只是一个存放数据的地方,它也是简化编码之地。

相关文档
最新文档