数据库设计规范
- 格式:doc
- 大小:36.00 KB
- 文档页数:6
数据库设计中的表命名规范与最佳实践在数据库设计中,表命名是至关重要的一项任务。
合理的表命名可以增加代码的可读性和可维护性,减少出错的可能性。
本文将介绍一些数据库设计中的表命名规范和最佳实践,旨在帮助开发人员创建易于理解和管理的数据库。
1. 使用清晰和具体的名词表名应该使用清晰和具体的名词,能够准确反映该表所存储的实体或信息类型。
例如,对于存储用户信息的表,可以使用"users"、"customers"等名称,而不是使用泛泛的名词如"data"或"info"。
2. 使用小写字母和下划线表名应该使用小写字母和下划线来分隔单词。
这种命名方式更易于阅读和输入,并且在不同数据库之间可以实现更好的兼容性。
例如,使用"user_orders"而不是"UserOrders"或"userorders"。
3. 避免使用保留字和特殊符号避免使用数据库系统中的保留字和特殊符号作为表名,以免造成命名冲突和解析问题。
可以通过在保留字前面或后面添加下划线或使用相关的同义词来解决这个问题。
4. 使用单数名词表名应该使用单数名词来表示实体,而不是复数形式。
这样可以减少混淆,使表名更加直观。
例如,使用"user"而不是"users"。
5. 使用前缀或后缀表示关联和模块对于存在关联关系的表,可以使用前缀或后缀来表示这种关系。
例如,使用"order_items"来表示"订单明细"表,其中"order"是前缀,"items"是指明该表与订单的关系。
6. 避免使用缩写词和简写形式尽量避免在表名中使用缩写词和简写形式,以确保代码的可读性。
如果使用缩写词是必要的,应该使用通用的和易于理解的缩写。
数据库设计规范一、数据库设计过程数据库技术是信息资源管理最有效的手段。
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个dbms产品的概念模式(信息世界模型),用e-r图来描述。
在逻辑设计阶段将e-r图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。
然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(view)形成数据的外模式。
在物理设计阶段根据dbms特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
1. 需求分析阶段需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。
自顶向下的结构化分析方法(structured analysis,简称sa方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。
系统中的数据则借助数据字典(data dictionary,简称dd)来描述。
数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}通过对用户需求进行综合、归纳与抽象,形成一个独立于具体dbms的概念模型,可以用e-r 图表示。
数据库建设规范数据库作为存储、管理和处理数据的重要工具,在现代信息化建设中起着至关重要的作用。
为了提高数据库的质量和效率,确保数据的安全性和准确性,需要制定一套数据库建设规范。
本文将从数据库设计、数据规范、性能优化和安全保障四个方面详细介绍数据库建设规范。
一、数据库设计在数据库建设的初期阶段,良好的数据库设计能够为后期的开发和维护工作奠定基础。
数据库设计应遵循以下几点规范:1. 数据库表命名规范表名应具有具体的描述性,能够准确表达其所存储的数据内容,并采用小写字母与下划线组合的方式命名,例如"order_info"。
2. 字段命名规范字段名应有明确的含义,避免使用缩写和数字等模糊的命名方式。
同时,字段名也应采用小写字母与下划线组合的方式命名,例如"create_time"。
3. 主键和外键规范每个表应有主键,并使用自增长或唯一性约束来保证主键的唯一性。
同时,在设计关联表时,外键应与关联的主键类型一致。
4. 索引规范为常用作查询条件的字段创建索引,以提高查询效率。
在创建索引时,需要根据实际情况进行选择,避免过多的索引对性能造成负面影响。
二、数据规范数据库中的数据质量对于后续的数据分析和决策产生重要影响。
为了保证数据的一致性和准确性,需要制定以下数据规范:1. 数据类型规范在对字段进行设计时,需要选择合适的数据类型,以节省存储空间,并确保数据的正确性。
例如,对于存储日期时间的字段,应选择合适的日期时间类型。
2. 数据录入规范为了避免数据录入错误,需要制定数据录入规范。
规定数据录入格式、校验规则和必填字段,同时提供数据录入的帮助文档和提示信息,以减少错误的发生。
3. 数据清洗规范对于已有的大规模数据,需要进行数据清洗,剔除重复、错误、缺失和异常数据,以保证数据库中的数据质量。
三、性能优化数据库的性能直接关系到系统的响应速度和用户体验。
为了提高数据库的性能,需要进行以下优化措施:1. 查询优化使用合适的查询方式、优化复杂查询语句、减少不必要的连接和子查询,以提高查询效率。
数据库设计中的约束条件与规范建议在进行数据库设计时,约束条件和规范建议是非常重要的因素。
它们确保数据库的完整性、一致性和安全性。
本文将介绍数据库设计中常见的约束条件和规范建议,并提供相应的解决方法和建议。
1. 主键约束主键是用来唯一标识数据库表中每一行记录的字段。
它具有唯一性和非空性的特征,可以确保每一行记录都有一个唯一的标识符。
在设计数据库时,应该为每个表选择合适的主键,通常是一个自增长的整数或者能够唯一标识某个实体的字段。
同时,还应该为主键添加相应的索引,以提高查询性能。
2. 外键约束外键是用来确保表之间的关联关系的字段。
它建立了表之间的关联,使得特定的行可以通过引用其他表中的行来保持数据的一致性。
在设计数据库时,应该明确定义表之间的关系,并使用外键来确保这些关系的正确性。
在创建外键时,应该指定引用表和引用列,并为外键添加相应的索引,以提高查询性能。
3. 唯一约束唯一约束用于确保表中的某个字段的值是唯一的。
它可以防止重复的数据出现。
在设计数据库时,应该在需要唯一性的字段上添加唯一约束,以保证数据的一致性。
需要注意的是,唯一约束并不会自动创建索引,因此在添加唯一约束后,还应该手动创建相应的索引。
4. 默认值约束默认值约束用于指定当插入新行时,如果没有为某个字段提供值,该字段应该采用的默认值。
在设计数据库时,根据业务需求,可以为字段指定适当的默认值。
这可以简化应用程序的开发和维护工作,并确保数据的完整性。
5. 检查约束检查约束用于限制字段的取值范围或格式。
它可以确保数据的一致性和合法性。
在设计数据库时,应该在需要进行合法性检查的字段上添加检查约束。
例如,可以使用正则表达式来验证邮件地址的格式,或者使用trigger触发器来实现更复杂的检查逻辑。
6. 规范化规范化是一种数据库设计过程,旨在减小数据的冗余性并提高数据存储的效率。
它是数据库设计中的一种最佳实践,应该在设计过程的早期考虑。
规范化过程通常包括将表拆分为更小的、更具体的实体,通过建立关联来实现数据的一致性和完整性。
数据库设计规范手册1. 简介数据库设计规范手册是为了统一数据库设计标准和提高数据库设计质量而编写的指南。
本手册将详细介绍数据库设计的基本原则、规范要求以及最佳实践,旨在帮助数据库设计人员更好地完成其工作。
2. 数据库设计原则在进行数据库设计时,应遵循以下原则:2.1 数据库规范化•利用规范化减少重复数据。
•使用主键、外键来确保数据完整性。
2.2 完整性约束•定义适当的唯一约束、非空约束等。
•使用触发器确保业务逻辑的执行。
2.3 性能优化•避免大量冗余字段,减少存储空间占用。
•根据查询需求创建必要的索引。
•注意合理使用分区技术来优化查询效率。
2.4 安全性考虑•对敏感数据进行加密存储。
•设置合适的权限和访问控制策略。
3. 数据库对象命名规范为了方便管理和沟通,应遵循一致的命名规范。
以下是常见对象的命名要求:3.1 表名•使用小写字母。
•使用下划线作为单词分隔符。
•采用名词复数形式。
3.2 列名•使用小写字母。
•使用下划线作为单词分隔符。
•避免使用保留关键字。
3.3 约束名•使用大写字母和下划线组合。
4. 数据库设计规范要求在进行数据库设计时,应满足以下要求:4.1 表设计•设计符合业务需求的表结构,避免冗余字段。
•定义适当的主键、外键关系。
•注意选择正确的数据类型和长度。
4.2 索引设计•基于查询需求创建索引,提高查询性能。
•注意索引不宜过多,避免对写操作产生过多影响。
4.3 视图和存储过程设计•合理使用视图简化复杂查询。
•利用存储过程实现业务逻辑的封装和复用。
5. 最佳实践5.1 数据库备份与恢复策略定期备份数据库,并确保可靠的恢复策略以应对突发情况。
5.2 日志管理与审计追踪监控数据库日志,及时发现和解决潜在问题,并实施安全审计追踪。
5.3 定期维护与性能优化定期进行数据库维护工作,包括索引重建、数据清理等,并优化数据库性能以满足业务需求。
结论数据库设计规范手册对于确保数据库设计的一致性和高质量至关重要。
数据库设计规范
数据库是计算机上最重要的存储组织和管理工具,它用于保存和管理数据,是所有大型数据操作的基础。
因此,数据库设计规范尤为重要,有助于组织有效地管理其信息资源。
首先,在数据库设计规范中应给出一个有效的逻辑结构来定义数据库,其应包括:表、字段、关系、视图、功能、安全性等。
其次,要求符合数据完整性的原则,也就是将要求数据库中的每个字段和表都遵循一定的规则和流程,以保证数据的完整性。
此外,在数据库设计规范中还应考虑易用性,要求用户在访问和更新数据时要轻松实现,同时保证数据库的安全性和可靠性。
另外,在数据库设计规范中,还要考虑实施和维护方面的因素。
在实施阶段,必须设计可信息技术部门使用的管理工具,使其能够有效地监控和管理数据库的运行情况;同时,在维护阶段,应定期对数据库进行检查,如备份、复制等,以便进行数据保护和维护。
综上所述,数据库设计规范是一个系统而完整的过程,包括确定表结构、定义索引、实施安全性、实现易用性等。
以上所有操作都是大型数据库中组织和管理数据的基本要求,必须以一套合理的数据库设计规范来实施,以保证数据库的完整性,安全性和可靠性。
为了保证数据库的正常工作,提高数据库的管理效率,应建立一套完善的数据库设计规范,将系统概念转换为实际的设计过程,让用户更加方便的使用数据库。
另外,还应不断适应新的数据库技术,为企业提供更具备未来竞争力的数据库设计方案。
概述目的软件研发数据库设计规范作为数据库设计的操作规范,详细描述了数据库设计过程及结果,用于指导系统设计人员正确理解和开展数据库设计。
适用范围术语定义DBMS:数据库管理系统,常用的商业DBMS有Oracle, SQL Server, DB2等。
数据库设计:数据库设计是在给定的应用场景下,构造适用的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
概念数据模型:概念数据模型以实体-关系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。
它从用户的观点出发对信息进行建模,主要用于数据库概念级别的设计,独立于机器和各DBMS产品。
可以用Sybase PowerDesigner工具来建立概念数据模型(CDM)。
逻辑数据模型:将概念数据模型转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。
可以用Sybase PowerDesigner工具直接建立逻辑数据模型(LDM),或者通过CDM转换得到。
物理数据模型:在逻辑数据模型基础上,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
可以用Sybase PowerDesigner工具直接建立物理数据模型(PDM),或者通过CDM / LDM转换得到。
数据库设计原则按阶段实施并形成该阶段的成果物一般符合3NF范式要求;兼顾规范与效率使用公司规定的数据库设计软件工具命名符合公司标准和项目标准数据库设计目标规范性:一般符合3NF范式要求,减少冗余数据。
高效率:兼顾规范与效率,适当进行反范式化,满足应用系统的性能要求。
紧凑性:例如能用char(10)的就不要用char(20),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。
易用性:数据库设计清晰易用,用户和开发人员均能容易地理解。
设计过程规范数据库设计过程包括如下阶段:数据分析、概念设计、逻辑设计、物理设计、实施与运行维护。
数据库表结构设计规范与最佳实践简介:数据库表结构设计是数据库应用的基础和核心之一,良好的数据库表结构设计能够保证数据的完整性、合理性和性能的优化。
本文将介绍数据库表结构设计的规范和最佳实践,帮助开发者设计出高效、可靠的数据库表结构。
一、命名规范在数据库表结构设计中,良好的命名规范有助于提高开发团队的协作效率和代码的可读性。
1. 表名命名规范- 表名应使用复数形式,并使用全小写字母和下划线。
- 表名应具有描述性,清晰地表达其存储的实体或概念。
2. 列名命名规范- 列名应使用全小写字母和下划线。
- 列名应具有描述性,清晰地表达其存储的数据信息。
- 列名应避免使用保留关键字和特殊字符。
3. 主键命名规范- 主键名应以表名为前缀,后面加上"_id"。
- 主键名应具有描述性,清晰地表示其作用。
二、数据类型选择恰当地选择数据类型是设计高效数据库表结构的关键。
1. 整数型- 对于整数型数据,根据实际需求选择合适的数据类型,如SMALLINT、INT、BIGINT等。
- 避免使用无符号整数类型,以便应对未来可能出现的变化。
2. 字符型- 对于字符型数据,根据实际需求选择合适的数据类型,如VARCHAR、CHAR等。
- 根据存储的字符长度确定字段长度,避免过长或过短的字段。
- 对于存储大文本内容的字段,可以考虑使用TEXT类型。
3. 日期和时间型- 对于日期和时间型数据,选择合适的日期时间数据类型,如DATETIME、TIMESTAMP等。
- 避免使用字符串存储日期和时间信息。
4. 浮点型- 对于浮点型数据,根据实际需求选择合适的数据类型,如FLOAT、DOUBLE等。
- 根据精度要求选择合适的数据类型,避免过高或过低的精度。
5. 枚举型- 对于具有固定取值范围的数据,可以考虑使用枚举类型,提高数据的完整性和可读性。
三、表之间的关系设计数据库中的表通常会存在不同的关系,合理设计表之间的关系能够提高查询效率和数据的一致性。
数据库设计四大原则数据库设计是指根据业务需求和数据特点,合理地组织和存储数据的过程。
数据库设计的好坏直接影响了数据库的性能、安全性、可维护性和可扩展性。
因此,数据库设计需要遵循一些基本的原则,以保证数据库的高效运行和良好发展。
本文将介绍数据库设计的四大原则,分别是范式化原则、安全性原则、可伸缩性与可扩展性原则和规范化原则。
一、范式化原则范式化原则是指将数据组织成多个关系表的过程,目的是减少数据冗余,提高数据的一致性和可靠性。
范式化原则有多个级别,从第一范式(1NF)到第五范式(5NF),每个级别都有一定的规则和要求。
一般情况下,数据库设计应该遵循第三范式(3NF),即满足以下条件:表内的每一个值都只能被表达一次,即不存在重复的列或行。
表内的每一行都应该被唯一的标识(有唯一键)。
表内不应该存储依赖于其他键的非键信息,即不存在传递依赖。
范式化原则可以有效地避免数据的插入异常、删除异常和更新异常,提高数据操作的效率和准确性。
但是,过度的范式化也会带来一些问题,如增加了表的数量和连接操作,降低了查询速度和易用性。
因此,在实际的数据库设计中,需要根据具体的业务场景和数据特点,适当地进行反范式化处理,即在满足范式化要求的基础上,适当地增加冗余字段或合并表,以提高查询性能和用户体验。
二、安全性原则安全性原则是指保护数据库免受未经授权的访问、修改或破坏的过程,目的是确保数据的完整性、机密性和可用性。
安全性原则包括以下几个方面:数据库管理和使用人员权限分离,即根据不同的角色和职责,分配不同的访问权限和操作权限,避免权限滥用或泄露。
数据库采用合理的加密算法和认证机制,防止数据被窃取或篡改。
数据库定期进行备份和恢复,防止数据丢失或损坏。
数据库及时更新补丁和防火墙,防止数据库被攻击或入侵。
安全性原则是数据库设计中至关重要的一个方面,如果忽视了安全性原则,可能会导致数据泄露、损毁或丢失,给企业或个人带来巨大的损失或风险。
数据库设计说明书编写规范1.引言在引言部分,需要对数据库设计说明书进行简要介绍,包括项目背景、目的和范围等。
同时,在引言中还需对数据库设计的基本原则和设计思路进行阐述,以帮助读者更好地理解和使用数据库。
2.数据库设计目标在数据库设计目标部分,明确数据库设计的目标和要达到的效果。
例如,提高数据存取效率、减少数据冗余、保证数据一致性等。
同时,还需说明数据库设计的业务需求和用户需求,以确保数据库设计满足实际需求。
3.数据库设计需求分析在数据库设计需求分析部分,对数据库设计的需求进行详细的分析和说明。
主要包括数据量估计、数据类型、数据关系、数据完整性、安全性等方面的需求。
此外,还需分析用户的查询需求和业务操作需求,以确保数据库设计满足用户需求。
4.数据库设计方法与过程在数据库设计方法与过程部分,详细描述数据库设计的方法和过程。
首先,对数据库设计的整体流程进行说明,包括需求分析、概念设计、逻辑设计、物理设计等阶段。
然后,对每个阶段的具体方法和步骤进行描述,包括使用的工具和技术。
5.数据库结构设计在数据库结构设计部分,详细描述数据库的架构、模型和表结构。
首先,对数据库的整体架构进行描述,包括数据库管理系统的选择、数据库服务器的配置等。
然后,对数据库的模型进行描述,包括概念模型、逻辑模型和物理模型。
最后,对数据库的表结构进行描述,包括表的定义、字段定义、约束条件等。
6.数据库性能优化策略在数据库性能优化策略部分,详细描述如何优化数据库的性能,以提高查询效率和响应速度。
主要包括索引的设计、查询语句的优化、物理存储结构的调整等方面。
此外,还需说明如何监控和调整数据库的性能,以及如何解决性能问题和故障。
7.数据库备份与恢复策略在数据库备份与恢复策略部分,详细说明如何进行数据库的备份和恢复。
主要包括备份频率、备份方式、备份目标、恢复方式等方面。
此外,还需说明如何验证备份的完整性和正确性,以确保备份数据的可用性和可靠性。
数据库设计规范
1 目的
规范数据库设计。
2 概述
从数据库的设计原则 设计文档几方面论述数据库设计的规范思想及命名规则。
3 数据库应用结构
根据对一般业务系统的分析,将数据库和程序系统统一进行整体描述,展示数据库的
表之间以及与程序模块间的关系。
3.1 数据表和程序模块的分类
根据“处理特点”,将数据表和程序模块进行分类如下:
数据表分类:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结
算数据表、决策数据表。
程序模块分类:初始化、业务处理、完整性检测与修正、结算处理、统计处理。
3.1.1 数据表分类说明
业务数据表:记录业务发生的过程和结果。如,合同、出仓单、申请单、凭证。
基本编码表:描述业务实体的基本信息和编码。如,产品、客户、供应商、雇员。
辅助编码表:描述属性的列表值。如,合同类型、职称、民族、付款方式。
系统信息表:存放与系统操作、业务控制有关的参数。如,用户信息、权限、用户配
置信息、成本核算方式。
累计数据表:存放业务的当前值和累计值。如,当前库存、当前存款、累计销售、累
计支出、应收账款。
结算数据表:存放各个时期末的结存数。如,月末库存、月末银行存款、应收账款月
结。
决策数据表:存放各个时期内发生的统计值。如,月销售统计、月回款统计、出入库
统计。
3.1.2 程序模块分类说明
初始化:系统运行前对系统进行数据的初始化。如,库存初始化。
业务处理:业务过程的控制和结果记录。如,合同录入、费用审批、出入库。
完整性检测与修正:对累计数据表进行检查并自动修正。如对当前库存、当前存款、
累计销售的检查和重新计算。
结算处理:计算并记录各个时期末的结存数。库存月结、应收账款月结。
统计处理:计算并记录各个时期内发生的统计数。如,统计月销售、统计月回款、统
计出入库。
3.2 数据表间的关系
业务数据表<-->基本编码表 主-外键关系。如,合同表<-->客户编码表;
业务数据表<-->辅助编码表 主-外键关系。如,合同表<-->付款方式;
业务数据表、累计数据表、结算数据表:累计数据表=结算数据表(上期末) + 业务数
据表(本期内发生)。如当前库存=上月末库存数+(本月入库数-本月出库数);
决策数据表<-->业务数据表 决策数据表的数据是由业务数据表中数据导出(统计)的;
3.3 数据表与程序模块间的关系
由一个例子(仓库管理)来说明数据表与程序模块之间的关系:
. 系统使用前,由初始化模块对库存数(累计数据表)和上月末库存数(结存数据表)进
行初始化;
. 当有入库业务发生时,由入库模块(业务处理)将入库单录入并保存到入库单明细帐(
业务数据表)中,同时将入库数累加到库存数(累计数据表)中;
. 定期或不定期,库存数核算模块(检查完整性检测与修正)根据上月末的库存数(结存
数据表)、本月已发生数(业务数据表)检查当前的库存数(累计数据表)是否符合,不符合
则给出提示,可手工或自动进行更正(当前库存数=上月末库存数+本月入库数-本月出库数
);
. 每月初,进行上月的月结处理。月结模块(结算处理)根据上月初的库存数(结存数据
表)、上月发生数(业务数据表)计算出上月末的库存数(累计数据表)。公式为:上月末库
存数=上月初库存数+上月入库数-上月出库数;
. 每个月月结后,库存业务月统计模块(统计处理)统计上月的各种库存商品的入库和
出库数,便于查询和生成报表,也作为决策支持的数据基础。
3.4 数据表命名时对数据表分类的考虑
. 业务数据表:t_d_<系统标识>_<表标识>。如销售系统的合同表 t_d_SH_Contract
或 t_d_SH_合同;
. 基本编码表:t_b_[<系统标识>]_<表标识>。如客户编码表t_b_Customer 或 t_b_
客
户;
. 辅助编码表:t_a_[<系统标识>]_<表标识>。如合同类别t_a_ContType 或 t_a_合
同
类别;
. 系统信息表:t_s_[<系统标识>]_<表标识>。如用户表t_s_User 或 t_s_用户;
. 累计数据表:t_t_<系统标识>_<表标识>。如当前库存表t_t_SO_Stock 或 t_t_SO_
库存;
. 结算数据表:t_c_<系统标识>_<表标识>。如库存月结表t_c_SO_StockMonth 或
t_c_SO_库存月结;
. 决策数据表:t_w_<系统标识>_<表标识>。如月销售统计表t_w_SH_SellMonth 或
t_w_SH_月销售统计;
注:[]内的内容表示可选。如“t_s_[<系统标识>]_<表标识>”表示t_s_SH_User 和
t_s_User 都是符合规则的。
4 数据库结构原则
规定除数据库设计所遵循的范式外的一些适用原则,在遵循数据库设计范式的基础上
,合理地划分表,添加状态和控制字段等。
4.1 辅助编码表
为了使辅助编码表能起到预期的效能,又不因过多的辅助编码表难以管理,故对辅助
编码表的使用作如下规定:
1. 当某辅助编码表的编码允许用户添加时,应设计成“独立”的数据表;否则,将不
允许用户添加编码的各辅助编码表合并成一个“通用”的辅助编码表。
2. “独立”的辅助编码表与主表的列采用主-外约束保证列数据完整性。
3. “通用”的辅助编码表与各主表间没有约束关系,主表列的数据完整性由列说明的
“域”来保证。
4. “通用”的辅助编码表除编码和名称列外,还有一个标识列,用来标识合并前的各
码表,该标识列+编码列作为该表的主键。
5. 对于“独立”的辅助编码表,用户只可添加新的编码和改变名称,并且不能改变一
个编码所代表的意义;对于“通用”的辅助编码表,原则上不允许用户修改,或只有限地
允许修改名称。
4.2 基本编码表
1. 基本编码表可以有如下的标识列:内编码、外编码、助记码、简称、全称。内编码
(唯一编码)作为主键有程序自动生成,用户不可见;外编码(唯一编码)由用户按某种
规则自行定义,用户可见;助记码为拼音缩,方便录入,不唯一,重码时由列表选择;简
称用于列表显示和报表,以便缩短行宽。以上的列在实现时可视情况和习惯加以删减。
2. 当码表的列较多且也行较多时,可将上述的标识列和常用的信息存于一个表,将其
它的信息另表存储。
4.3 业务数据表
1. 设有‘录入人’和‘录入日期’列,由系统自动记录。
2. 记录单据的表中设置“自动单据号”,由两个字符开始以区分单据类型,后跟一数
字序列表示序号。‘自动单据号’由系统自动生成,作为主表的主键,不允许用户修改。
当有对应的纸质单据时,设置“单据号”用于记录纸质单据的单据号。
3. 明细表中设有行序号,自动记录行的录入顺序。
4. 设置“存档标记”列,用于抽取数据到决策数据库时的更新标记。插入新行或修改
已有行时设置该标记;数据抽取后清除该标记。
5. 对于用于查询过滤条件的列,不可为空,以免行“丢失”。
6. 对于数值列,不可为空,“0”作为默认值。
7. 对于必要的“冗余”列,如客户名称,应有相应的程序保持各“冗余”列的同一性
,以免出现异议。
8. 设置“过程状态”列和“记录状态”列。过程状态列用于记录如创建、审核、记账
、冲红等状态;记录状态用于记录如有效、删除等状态。
5 数据库命名原则
5.1 表名
. 业务数据表:t_d_<系统标识>_<表标识>。
. 基本编码表:t_b_[<系统标识>]_<表标识>。
. 辅助编码表:t_a_[<系统标识>]_<表标识>。
. 系统信息表:t_s_[<系统标识>]_<表标识>。
. 累计数据表:t_t_<系统标识>_<表标识>。
. 结算数据表:t_c_<系统标识>_<表标识>。
. 决策数据表:t_w_<系统标识>_<表标识>。
5.2 视图
v_<视图类型>_[<系统标识>]_<视图标识>。视图类型参见《表的分类》。
5.3 存储过程
p_[<系统标识>]_<存储过程标识>
5.4 函数
f_[<系统标识>]_<函数标识>
5.5 触发器
tr_<表名>_ (after)
ti_<表名>_ (instead)
5.6 自定义数据类型
ud_<自定义数据类型标识>_<数据类型>
5.7 Default
df_
5.8 Rule
ru_
5.9 主键
pk_<表名>_<主键标识>
5.10 外键
fk_<表名>_<主表名>_<外键标识>