MYSQL数据库命名及设计规范

合集下载

MySQL数据库设计规范(仅供参考)

MySQL数据库设计规范(仅供参考)

MySQL数据库设计规范(仅供参考)MySQL数据库设计规范(仅供参考)⽬录1. 规范背景与⽬的2. 设计规范2.1 数据库设计2.1.1 库名2.1.2 表结构2.1.3 列数据类型优化2.1.4 索引设计2.1.5 分库分表、分区表2.1.6 字符集2.1.7 程序DAO层设计建议2.1.8 ⼀个规范的建表语句⽰例2.2 SQL编写2.2.1 DML语句2.2.2 多表连接2.2.3 事务2.2.4 排序和分组2.2.5 线上禁⽌使⽤的SQL语句1. 规范背景与⽬的MySQL数据库与 Oracle、 SQL Server 等数据库相⽐,有其内核上的优势与劣势。

我们在使⽤MySQL数据库的时候需要遵循⼀定规范,扬长避短。

本规范旨在帮助或指导RD、QA、OP等技术⼈员做出适合线上业务的数据库设计。

在数据库变更和处理流程、数据库表设计、SQL编写等⽅⾯予以规范,从⽽为公司业务系统稳定、健康地运⾏提供保障。

2. 设计规范2.1 数据库设计以下所有规范会按照【⾼危】、【强制】、【建议】三个级别进⾏标注,遵守优先级从⾼到低。

对于不满⾜【⾼危】和【强制】两个级别的设计,DBA会强制打回要求修改。

2.1.1 库名1. 【强制】库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量提现join的关系,如user表和user_login表。

2. 【强制】库的名称格式:业务系统名称_⼦系统名,同⼀模块使⽤的表名尽量使⽤统⼀前缀。

3. 【强制】⼀般分库名称命名格式是库通配名_编号,编号从0开始递增,⽐如wenda_001以时间进⾏分库的名称格式是“库通配名_时间”4. 【强制】创建数据库时必须显式指定字符集,并且字符集只能是utf8或者utf8mb4。

创建数据库SQL举例:create database db1 defaultcharacter set utf8;。

2.1.2 表结构1. 【强制】表和列的名称必须控制在32个字符以内,表名只能使⽤字母、数字和下划线,⼀律⼩写。

mysql 数据库设计命名规则

mysql 数据库设计命名规则

mysql 数据库设计命名规则
在MySQL数据库设计中,命名规则是非常重要的,它有助于提
高数据库的可读性和可维护性。

以下是一些常见的MySQL数据库设
计命名规则:
1. 表名命名规则:
使用有意义且描述性强的表名,避免使用简单的单词或缩写。

表名应该使用复数形式,以便清楚地表示其包含多个实例。

使用下划线或驼峰命名法来提高表名的可读性。

2. 字段名命名规则:
字段名应该简洁明了,能够清晰地描述其所代表的数据。

避免使用保留字作为字段名,以免引起冲突。

采用下划线或驼峰命名法来提高字段名的可读性。

3. 约束名命名规则:
约束名应该清晰表达其所起的作用,例如主键约束、外键约
束等。

约束名应该与表名和字段名保持一致,以便于理解和维护。

4. 索引名命名规则:
索引名应该清晰描述其所涉及的字段以及索引类型,例如
idx_字段名等。

避免使用过于复杂或含糊的索引名,以免混淆。

5. 视图和存储过程命名规则:
视图和存储过程的命名应该反映其所包含的数据或逻辑,便
于理解和识别。

总的来说,MySQL数据库设计的命名规则应该遵循清晰、简洁、有意义的原则,以便于他人阅读和理解,提高数据库的可维护性和
可扩展性。

同时,也要注意避免使用特殊字符和空格,以免引起不必要的麻烦。

希望以上信息能够对你有所帮助。

MySQL的数据库设计原则和规范

MySQL的数据库设计原则和规范

MySQL的数据库设计原则和规范随着互联网的快速发展,大量的数据被生成并储存在数据库中。

作为一种开源关系型数据库管理系统,MySQL因其高性能、可靠性和易用性而受到广泛的使用和认可。

在进行MySQL数据库设计时,遵循一些设计原则和规范可以帮助提高数据库的效率和可维护性。

本文将介绍一些MySQL数据库设计的原则和规范,以帮助开发人员更好地进行数据库设计。

一、表的设计1. 表的字段命名字段命名应该具有明确的含义,并遵循一定的命名规则。

通常,字段名应以小写字母开头,并使用下划线(_)或驼峰命名法(如camelCase)作为单词间的分隔符。

避免使用保留字作为字段名。

例如,一个表示用户姓名的字段可以被命名为“user_name”。

2. 主键的设计每个表都应该有一个主键用于唯一标识表中的每一行数据。

通常情况下,自增长的整数类型(如INT)被用作主键。

主键的命名应该使用表名加上“_id”的后缀,如“user_id”。

3. 字段的数据类型选择在选择字段的数据类型时,应该根据实际需求选择最适合的数据类型。

例如,使用INT代替VARCHAR来存储一个数字字段,可以提高查询效率和节省存储空间。

4. 字段的约束在创建表时,通过添加合适的约束来保证数据的完整性和一致性。

例如,可以使用NOT NULL约束来确保字段的值不能为空,使用UNIQUE约束来确保某个字段的值在表中是唯一的。

二、索引的设计索引对于提高查询性能和加快数据检索速度至关重要。

以下是一些关于索引设计的原则和规范:1. 表的主键字段应该被索引主键字段被用作唯一标识表中的每一行数据,因此应该被索引以提高查询效率和数据检索速度。

2. 经常用于WHERE子句的字段应该被索引字段在WHERE子句中的使用频率高,应该被索引以加快数据检索速度。

例如,一个经常用于查询的用户ID字段应该被索引。

3. 不要过度索引虽然索引可以提高查询性能,但过多的索引会增加数据库的维护成本和写操作的负担。

MySQL数据库表和字段命名规范

MySQL数据库表和字段命名规范

MySQL数据库表和字段命名规范导言:在数据库设计和开发中,表和字段的命名规范是非常重要的。

一个良好的命名规范能够提高代码的可读性、可维护性和辨识度。

本文将介绍一些常见的MySQL 数据库表和字段命名规范,希望对读者在数据库开发中有所帮助。

一、表命名规范1. 采用小写字母命名表名。

这样可以避免在跨平台时大小写不敏感的问题,并且有助于代码的一致性。

2. 多个单词用下划线(_)分隔。

例如,user_info、order_detail等。

3. 尽量给表名取得有意义且具有描述性的名字,能够清楚表达出表所存储的内容。

二、字段命名规范1. 采用小写字母命名字段名。

同样,这可以避免大小写不敏感的问题。

2. 也可以使用下划线(_)分隔。

例如,create_time、user_id等。

3. 尽量给字段取得有意义的名字,能够清楚表达字段所存储的数据。

三、表和字段命名的一些约定1. 避免使用MySQL保留字作为表名或字段名。

在MySQL中有一些保留字(如select、update等),如果使用这些保留字作为表名或字段名,可能引发一些潜在的问题,在查询时需要特殊处理。

可以在命名中加上下划线或其他可辨识符号来避免与保留字的冲突。

2. 避免使用过长或过于简短的命名。

过长的命名可能造成代码的冗余,过于简短的命名可能不具备辨识度。

合理的命名长度可以提高代码的可读性和可维护性。

3. 避免使用缩写和简写。

虽然缩写和简写可以减少字符数,但是在团队协作中容易引起误解和混淆。

具有明确、清晰含义的命名可以降低开发和维护的成本。

4. 保持命名的一致性。

在整个数据库中,保持表和字段的命名一致性,可以提高理解和维护代码的效率。

例如,如果一个表的主键命名为"id",那么在其他表中也保持主键命名为"id",而不是使用其他类似"pk"或"key"的名称。

四、表和字段命名的示例以下是一些常见的表和字段命名示例,仅供参考,读者可以根据实际情况进行调整:1. 用户信息表:user_info(字段包括user_id, username, password, email等)2. 订单详情表:order_detail(字段包括order_id, product_id, quantity等)3. 商品信息表:product_info(字段包括product_id, product_name, price等)4. 地址信息表:address_info(字段包括address_id, user_id, address等)结论:良好的MySQL数据库表和字段命名规范是数据库开发中必不可少的一部分。

mysql 数据库设计规约 概述及解释说明

mysql 数据库设计规约 概述及解释说明

mysql 数据库设计规约概述及解释说明1. 引言1.1 概述在现代信息化的社会背景下,数据库成为了各个行业中不可或缺的重要组成部分。

而数据库的设计规范则是确保数据库系统高效、可靠运行的基础。

MySQL作为目前最流行的关系型数据库管理系统之一,其设计规约对于保证数据的完整性和一致性至关重要。

本文将对MySQL数据库设计规约进行深入解释和说明,旨在提供给读者一个全面了解MySQL数据库设计规范及其重要性的视角。

1.2 文章结构本文将从以下几个方面进行详细阐述:引言、数据库设计规约解释说明、MySQL 数据库基础知识回顾、创建数据库和表格时应遵循的规范以及设计数据库关系时应遵循的规范。

通过这些内容,读者可以全面了解到MySQL数据库设计规约相关的核心概念和实践经验。

1.3 目的本文的目标可以总结为以下几点:首先,介绍和解释什么是MySQL数据库设计规约以及它们对于构建高度可管理和可扩展的数据库系统所起到的作用。

其次,回顾MySQL数据库的基础知识,包括它的特点、优势以及基本组成与架构。

这样可以为读者提供一个全面的背景,以便更好地理解如何使用数据库设计规范。

接着,讨论在创建数据库和表格时应遵循的规范。

这包括数据库、表格和字段命名规范以及注意事项。

通过明确这些规范,可以保证数据库在整个开发过程中的一致性和稳定性。

最后,探讨设计数据库关系时应遵循的规范。

主要包括主键、外键和索引设计原则、建立表格之间的关系以及范式理论在数据库设计中的应用。

这些规范将帮助读者优化数据库结构和关系,提高数据处理效率。

通过本文内容的解释与说明,读者将能够深入了解MySQL数据库设计规约,并能够在实际项目中灵活应用。

同时,也将对构建高效可靠的MySQL数据库系统具备更加全面和深入的认识。

2. 数据库设计规约解释说明2.1 数据库设计规约的定义和作用数据库设计规约是指在设计和开发数据库时需要遵循的一系列规范和准则。

它们旨在确保数据库的结构合理、高效,并且能够满足系统需求。

Mysql开发规范(命名规范 基础规范 库表设计 字段设计 索引规范 SQL设计)

Mysql开发规范(命名规范 基础规范 库表设计 字段设计 索引规范 SQL设计)

MySQL开发规范说明:数据库本身功能点很多,硬性限制上限比较高,比如单表大小,记录条数,多表join关联个数。

我们人为的加一些规范予以限制,是基于当前的并发度、响应时长、网络速度、硬件资源、备份时长、是否易于维护管理、便捷扩容、兼顾敏捷开发等诸多因素做的一个平衡选择。

比如索引个数限制(考虑记录更新需要更新索引,而这又涉及到单次数TPS带来的多次IOPS,影响磁盘使用率,磁盘满符合使用增加了吞吐量但又带来排队深度增加,总响应时长增长。

命名规范库名、表名、字段名必须使用小写字母,并采用下划线分割库名、表名、字段名禁止超过32个字符。

命名应与意义相符:比如k1,k2,k3这种无意义字段应该避免。

受限一下操作系统限制,库名尽量少于8个字符。

以便跨数据库版本迁移,比如mysql迁移db2,oracle等库名、表名、字段名禁止使用MySQL保留字比如:字段常见value 等关键字出现临时库、表名必须以tmp为前缀,并以日期为后缀,比如:tmp_order_yyyymmdd备份库、表必须以bak为前缀,并以日期为后缀,比如:t_order_bak_yyyymmdd基础规范使用INNODB存储引擎说明:mysql 官方版本已经设置表字符集使用UTF8,建议使用utf8mb4所有表都需要添加注释说明:增强可维护性,以及数据仓库、大数据项目等二次采集时数据调研的容易程度单表数据量建议控制在5000W以内说明:受限部署机器的内存,迁移数据的网络限制,对低端硬件设备(1000iops);表应设置在1000w以内不在数据库中存储图片、文件等大数据说明:核心库考虑高并发,高性能,以及有效使用内存等原因,大字段不具备内存缓存,以及插入数据时,删除数据导致聚簇索引行迁移。

禁止在线上做数据库压力测试禁止从测试、开发环境直连数据库说明:考虑实际阶段调整,直联容易出现,误修改数据,update不提交hold住事务,锁等待,以及核心数据丢书;物理上也开放端口给入侵留了安全隐患;以及员工变更的用户敏感数据外泄。

mysql数据库规范

mysql数据库规范

mysql数据库规范MySQL数据库规范MySQL是一款常用的关系型数据库管理系统,为了提高数据的一致性、可靠性和易维护性,我们需要制定一些数据库规范。

本文列举了一些MySQL数据库规范的建议,以帮助你更好地管理和维护MySQL数据库。

1. 表名和字段名规范- 表名和字段名应该使用小写字母,并使用下划线作为单词之间的分隔符。

例如,user_info是一个好的表名。

- 避免使用MySQL的关键字作为表名和字段名。

- 表名和字段名的命名应该具有描述性,能够清楚地表达其意义。

2. 主键规范- 每个表应该有一个主键来唯一标识每一行数据。

主键可以是单个字段,也可以是多个字段组合而成的复合主键。

- 主键字段应该是整型或者字符串类型,尽量避免使用大文本字段作为主键。

- 主键字段应该具有自增特性,以提高插入和查询的性能。

- 主键字段命名为id,表名是以表名加 id,如 user_info 表的主键应为 user_info_id。

3. 索引规范- 对于经常用于查询、排序和连接的字段,应该创建索引来提高查询性能。

例如,对于经常根据用户ID进行查询的表,应该为用户ID字段创建索引。

- 避免创建过多的索引,因为索引会增加数据的存储空间和维护负担。

只在必要的字段上创建索引。

- 避免创建过长的索引,因为较长的索引会占用更多的磁盘空间和内存。

- 定期对索引进行优化和维护,例如删除不再使用的索引,重新构建索引等。

4. 数据类型规范- 选择合适的数据类型来存储不同类型的数据,以提高存储效率和查询性能。

- 尽量避免使用大的文本类型,尤其是在索引字段上,因为文本类型的字段会占用更多的存储空间和CPU资源。

- 对于日期和时间类型的数据,应该使用合适的日期和时间类型,以方便日期和时间的计算和比较。

- 对于数值类型的数据,应该根据数据的精度和范围来选择合适的数值类型。

5. 数据库设计规范- 采用规范化的数据库设计,以减少数据冗余和提高数据一致性。

MYSQL数据库设计规范与原则

MYSQL数据库设计规范与原则

MYSQL数据库设计规范与原则MYSQL数据库设计规范1、数据库命名规范采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;除⾮是备份数据库可以加0-9的⾃然数:user_db_20151210;2、数据库表名命名规范采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成;命名简洁明确,多个单词⽤下划线'_'分隔;例如:user_login, user_profile, user_detail, user_role, user_role_relation,user_role_right, user_role_right_relation表前缀'user_'可以有效的把相同关系的表显⽰在⼀起;3、数据库表字段名命名规范采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成;命名简洁明确,多个单词⽤下划线'_'分隔;例如:user_login表字段 user_id, user_name, pass_word, eamil, tickit, status, mobile, add_time;每个表中必须有⾃增主键,add_time(默认系统时间)表与表之间的相关联字段名称要求尽可能的相同;4、数据库表字段类型规范⽤尽量少的存储空间来存数⼀个字段的数据;例如:能使⽤int就不要使⽤varchar、char,能⽤varchar(16)就不要使⽤varchar(256);IP地址最好使⽤int类型;固定长度的类型最好使⽤char,例如:邮编;能使⽤tinyint就不要使⽤smallint,int;最好给每个字段⼀个默认值,最好不能为null;5、数据库表索引规范命名简洁明确,例如:user_login表user_name字段的索引应为user_name_index唯⼀索引;为每个表创建⼀个主键索引;为每个表创建合理的索引;建⽴复合索引请慎重;6、简单熟悉数据库范式第⼀范式(1NF):字段值具有原⼦性,不能再分(所有关系型数据库系统都满⾜第⼀范式);例如:姓名字段,其中姓和名是⼀个整体,如果区分姓和名那么必须设⽴两个独⽴字段;第⼆范式(2NF):⼀个表必须有主键,即每⾏数据都能被唯⼀的区分;备注:必须先满⾜第⼀范式;第三范式(3NF):⼀个表中不能包涵其他相关表中⾮关键字段的信息,即数据表不能有沉余字段;备注:必须先满⾜第⼆范式;备注:往往我们在设计表中不能遵守第三范式,因为合理的沉余字段将会给我们减少join的查询;例如:相册表中会添加图⽚的点击数字段,在相册图⽚表中也会添加图⽚的点击数字段;MYSQL数据库设计原则1、核⼼原则不在数据库做运算;cpu计算务必移⾄业务层;控制列数量(字段少⽽精,字段数建议在20以内);平衡范式与冗余(效率优先;往往牺牲范式)拒绝3B(拒绝⼤sql语句:big sql、拒绝⼤事物:big transaction、拒绝⼤批量:big batch);2、字段类原则⽤好数值类型(⽤合适的字段类型节约空间);字符转化为数字(能转化的最好转化,同样节约空间、提⾼查询性能);避免使⽤NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引⽆效);少⽤text类型(尽量使⽤varchar代替text字段);3、索引类原则合理使⽤索引(改善查询,减慢更新,索引⼀定不是越多越好);字符字段必须建前缀索引;不在索引做列运算;innodb主键推荐使⽤⾃增列(主键建⽴聚簇索引,主键不应该被修改,字符串不应该做主键)(理解Innodb的索引保存结构就知道了);不⽤外键(由程序保证约束);4、sql类原则sql语句尽可能简单(⼀条sql只能在⼀个cpu运算,⼤语句拆⼩语句,减少锁时间,⼀条⼤sql可以堵死整个库);简单的事务;避免使⽤trig/func(触发器、函数不⽤客户端程序取⽽代之);不⽤select*(消耗cpu,io,内存,带宽,这种程序不具有扩展性); OR改写为IN(or的效率是n级别);OR改写为UNION(mysql的索引合并很弱智);select id from t where phone = ’159′ or name= ‘john’; =>select id from t where phone=’159′unionselect id from t where name=’jonh’避免负向%;慎⽤count(*);limit⾼效分页(limit越⼤,效率越低);使⽤union all替代union(union有去重开销);少⽤连接join;使⽤group by;请使⽤同类型⽐较;打散批量更新;5、性能分析⼯具show profile;mysqlsla;mysqldumpslow;explain;show slow log;show processlist;。

MySQL表设计规范与命名约定建议

MySQL表设计规范与命名约定建议

MySQL表设计规范与命名约定建议数据库表设计是构建稳健可靠的数据库系统的关键步骤之一。

一个合理设计的数据库表结构将提升系统的性能、可维护性和可扩展性。

本文将针对MySQL数据库,提供一些表设计规范和命名约定的建议,帮助开发人员在数据库设计过程中遵循最佳实践。

一、表设计规范建议1. 表名选择选择有意义且能够表达内容的表名。

避免使用无意义的缩写、单词拼音或数字等。

表名应该是具有描述性的词汇,并且要保持一致性,这样可以提高代码的可读性和可维护性。

例如,假设我们要设计一个博客系统,可以使用"users"、"articles"、"comments"等表名来分别表示用户、文章和评论。

2. 字段命名字段命名也应当选择具有描述性的词汇,并且避免使用无意义的缩写和拼音。

字段名应该能够准确反映字段所存储的数据。

如果字段名过长,可以考虑使用缩写,但要确保缩写容易理解且不会导致混淆。

以用户表为例,可以选择字段名为"username"、"email"、"password"等,来分别表示用户名、邮箱和密码。

3. 主键选择每个表应该都有一个主键字段,用于唯一标识表中的每一行记录。

主键可以是自增长的整数,也可以是具有唯一性的其他字段。

主键的选择要根据具体业务需求进行调整。

在用户表中,可以选择使用自增长的整数字段"id"作为主键。

4. 索引的使用合理使用索引可以提高数据库的查询性能。

一般情况下,对于经常用于查询条件的字段,可以考虑创建索引。

但是,过多的索引也会影响写操作的性能,因此应该选择性地创建索引。

在用户表中,如果经常根据用户名进行查询,可以考虑创建用户名的索引。

5. 字段类型选择选择合适的字段类型可以减少内存和存储空间的占用,并提高查询性能。

根据数据类型的特点,选择适当的字段类型。

例如,对于存储年龄的字段,可以选择无符号整数类型"unsigned int",因为年龄不可能为负数。

mysql命名规范

mysql命名规范

mysql命名规范
一、数据库命名规范
1、使用全小写字母。

2、使用下划线分隔单词,如:db_name,不要使用空格或者拼音的大写。

3、命名尽量采用有意义的英文或者拼音,要易于记忆。

二、表名命名规范
1、表名尽量采用单数形式,即一个表对应一个实体,实体的命名也就是表的命名。

2、建议使用英文单词或拼音,单词之间可以用下划线将单词分隔,如:
person_addresses,同时也可以使用驼峰命名法,如:personAddresses。

三、字段名命名规范
1、每个字段最好有双语名称,英文作为字段名,中文作为字段备注,以利于理解和使用。

2、字段的命名要简单明了,不要使用缩写或者特殊符号,同时应该把字段名分配给特定的实体,比如说用name而不是names来表示名称。

3、若主键使用自增长id,建议使用以id结尾的字段名,如user_id 。

四、索引命名规范
1、索引的命名应该表明当前索引是对哪个表和哪些字段进行创建的,所以以索引类型、表名和字段名作为索引的命名,如idx_blog_author_id。

2、建议使用驼峰式的命名,如idxBlogAuthorId。

MYSQL数据库管理规范

MYSQL数据库管理规范

MySQL数据库规范(设计规范+开发规范+操作规范)目录MySQL数据库规范(设计规范+开发规范+操作规范) (1)I 文档定义 (2)1.1 编写目的 (2)1.2 适用范围 (2)II . 命名设计规范 (2)2.1 总则 (2)2.2 库名 (3)2.3 表名 (3)2.4 字段名 (3)2.5 索引名 (4)2.6 视图命名 (4)2.7 存储过程命名 (4)2.8 函数命名 (4)III 数据库设计规范 (5)3.1 表设计原则 (5)3.2 字段设计原则 (6)3.3 主键设计原则 (7)3.4 索引设计原则 (8)3.5 数据库里不建议存放业务日志 (8)IV SQL设计规范 (9)4.1 避免数据类型的隐式转换 (9)4.2 避免复杂SQL (9)4.3 批量插入 (9)4.4 数据更新 (9)4.5 避免使用TRUNCATE TABLE (9)4.6 避免使用SELECT * (10)4.7 使用索引做条件查询count(*) (10)4.8 避免IN子句 (10)4.9 避免不必要的排序 (10)4.10 合理利用最左索引 (10)4.11 多表连接 (11)4.12 避免在where后的索引字段上使用函数 (11)4.13 尽量不要做’%’前缀模糊查询 (11)4.14 使用UNION ALL代替UNION (12)4.15 尽量避免OR操作 (12)4.16 MySQL 在否定条件中不能使用索引 (12)4.17 MySQL 在JOIN中连接字段类型如果不一致,则不能使用索引 (13)4.18 如果两个字段列的字符集不同,不推荐JOIN (13)V 完整性设计规范 (13)5.1 主键约束 (13)5.2 NULL值 (13)5.3 视图使用原则 (14)VI 安全性设计规范 (14)6.1 数据库账号使用规范 (14)6.2 用户与权限 (15)6.3 用户密码管理 (15)VII 开发行为规范 (15)7.1 总则 (15)7.2 避免使用触发器 (16)7.3 避免使用存储过程和函数 (16)7.4 避免使用视图 (16)VIII 其他规范 (17)8.1 编制文档 (17)8.2 维护计划规范 (17)(2)数据归档删除 (17)I 文档定义1.1 编写目的此规范依照《中国科协数据管理总纲》(暂行)、《中国科协数据标准管理办法》(暂行)、《中国科协数据质量管理办法》(暂行)制定。

mysql规范

mysql规范

mysql规范MySQL规范是指在MySQL数据库设计、开发和维护过程中应遵循的一系列准则和规定。

遵循MySQL规范可以提高数据库的性能、可维护性和可扩展性。

下面是MySQL规范的一些主要要点:1. 数据库命名规范:- 数据库名、表名和字段名应使用有意义、描述性的名称。

- 应使用小写字母和下划线作为命名的分隔符,例如`user_info`。

- 应避免使用MySQL保留字作为命名的一部分,或者使用反引号(`)将其括起来。

2. 表设计规范:- 应创建适当的索引来加速查询操作。

- 应使用主键来唯一标识每一行数据。

- 应使用外键来建立表之间的关联关系,并设置适当的级联选项。

- 应使用整数类型存储日期和时间,而不是字符类型。

3. 字段设计规范:- 应为字段选择合适的数据类型,并避免使用过大或过小的类型。

- 应为字段设置合适的长度,以避免浪费存储空间和性能损失。

- 应为字段设置合适的默认值,以避免插入重复或无效数据。

- 应避免在字段中存储重复的数据,并使用关联表来避免数据冗余。

4. SQL语句编写规范:- 应使用参数化查询或者预处理语句来防范SQL注入攻击。

- 应使用合适的SQL语句格式和缩进,以提高代码的可读性。

- 应使用事务来保证数据的一致性和完整性。

- 应避免使用SELECT *语句,只选择实际需要的字段。

5. 性能调优规范:- 应定期分析查询的执行计划,以优化查询的性能。

- 应设置适当的连接池大小、缓存大小和超时时间,以提高数据库的性能。

- 应合理使用索引和复合索引,以加速查询操作。

- 应避免频繁的表连接操作,可以考虑使用冗余字段或者关联表的方式。

以上是MySQL规范的一些主要要点,不同的团队和项目可能有些差异,但遵循这些规范可以提高数据库的性能和可维护性。

同时,定期进行代码审查和性能优化也是保持数据库健康的重要工作。

MySql数据库设计规范

MySql数据库设计规范
● MySql用户名与数据库名字一样。
2. 命名
(1) 命名应使用富有意义的英文词汇,多个单词组成的,中间以下划线分割。
(2) 命名只能使用英文字母,数字和下划线。
(3) 命名避免使用 MySql 的保留字(详见附录 )和系统关键字。
(4) 命名长度以不超过 15 个字符为宜(避免超过 20)。
BIGINT
8 个字节, -9223372036854775808 to 922337203685477580
0 to 18446744073709551615
DECIMAL(P,S)
定点数(以字符串形式存放)
默认:P 为 10,S 为 0,最大 65 位
DATE
Time
DATETIME
TIMESTAMP
● 所有的 MySQL数据库除历史原因外,都采用CHARSET=utf8mb4 COLLATE=utf8mb4_bin 编
码。 ● MySql对 DDL 支持很差,表结构推荐设计为 Key-Value 结构。如果是关系型结构的数据库,
请尽量预留一些字段,如 value1,value2,value3。
范围 '1970-01-01 00:00:01' 到 '2038-01-19 03:14:07'
格式'YYYY-MM-DD HH:MM:SS' 宽度固定 为 19 个字符(4 字节) 不建议532>n>4, 注意,n 是字符 数,而不是字节数
CHAR(n)
(4) 请不要使用外键约束,如果数据存在外键关系,请在程序层面实现。
(5) 如果应用使用的是长连接,应用必须具有自动重连的机制。但请避免每执行一个 SQL去检查 一次 DB 可用性。

Mysql命名规范

Mysql命名规范

Mysql命名规范转⾃:https:///fujian9544/article/details/86649096数据库表字段命名规范内容由⽹上摘抄并进⾏总结/精简/标记后的内容本⽂包含了数据库命名数据库表命名数据库表字段命名SQL语⾔编码的规范⼀、数据库命名规范采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词⽤下划线'_'分隔,⼀个项⽬⼀个数据库,多个项⽬慎⽤同⼀个数据库⼆、数据库表命名规范2.1数据表命名规范(1)采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词⽤下划线'_'分隔(2)全部⼩写命名,禁⽌出现⼤写(3)禁⽌使⽤数据库关键字,如:name,time ,datetime,password等(4)表名称不应该取得太长(⼀般不超过三个英⽂单词)(5)表的名称⼀般使⽤名词或者动宾短语(6)⽤单数形式表⽰名称,例如,使⽤ employee,⽽不是 employees明细表的名称为:主表的名称+字符dtl(detail缩写)例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl(7)表必须填写描述信息(使⽤SQL语句建表时)2.2命名规范①模块_+功能点⽰例:alllive_log alllive_category②功能点⽰例:live message③通⽤表⽰例:all_user2.3待优化命名⽰例①冗余:错误⽰例:yy_alllive_video_recomment yy_alllive_open_close_log说明:去除项⽬名,简化表名长度,去”yy_”②相同类别表命名存在差异,管理性差错误⽰例:yy_all_live_category yy_alllive_comment_user说明:去除项⽬名,统⼀命名规则,均为”yy_alllive_”开头即可③命名格式存在差异错误⽰例:yy_showfriend yy_user_getpoints yy_live_program_get说明:去除项⽬名,统⼀命名规则,动宾短语分离且动宾逻辑顺序统⼀三、数据库字段命名规范3.1字段命名规范(1)采⽤26个英⽂字母(区分⼤⼩写)和0-9的⾃然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词⽤下划线'_'分隔(2)全部⼩写命名,禁⽌出现⼤写(3)字段必须填写描述信息(4)禁⽌使⽤数据库关键字,如:name,time ,datetime password 等(5)字段名称⼀般采⽤名词或动宾短语(6)采⽤字段的名称必须是易于理解,⼀般不超过三个英⽂单词(7)在命名表的列时,不要重复表的名称例如,在名employe的表中避免使⽤名为employee_lastname的字段(8)不要在列的名称中包含数据类型(9)字段命名使⽤完整名称,禁⽌缩写3.2命名规范①名词⽰例:user_id user_name sex②动宾短语⽰例:is_friend is_good3.3待优化命名⽰例①⼤⼩写规则不统⼀错误⽰例:user_id houseID说明:使⽤统⼀规则,修改为”user_id”,”house_id”②加下划线规则不统⼀错误⽰例:username userid isfriend isgood说明:使⽤下划线进⾏分类,提升可性,⽅便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”③字段表⽰不明确错误⽰例:uid pid说明:使⽤完整名称,提⾼可读性,修改为”user_id”,”person_id”3.4字段类型规范(1)所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值,字符型的默认值为⼀个空字符值串’’,数值型的默认值为数值0,逻辑型的默认值为数值0(2)系统中所有逻辑型中数值0表⽰为“假”,数值1表⽰为“真”,datetime、smalldatetime类型的字段没有默认值,必须为NULL(3)⽤尽量少的存储空间来存储⼀个字段的数据使⽤int就不要使⽤varchar、char,⽤varchar(16)就不要使varchar(256)IP地址使⽤int类型固定长度的类型最好使⽤char,例如:邮编(postcode)能使⽤tinyint就不要使⽤smallint,int最好给每个字段⼀个默认值,最好不能为null(4)⽤合适的字段类型节约空间字符转化为数字(能转化的最好转化,同样节约空间、提⾼查询性能)避免使⽤NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引⽆效)少⽤text类型(尽量使⽤varchar代替text字段)3.5数据库中每个字段的规范描述(1)尽量遵守第三范式的标准(3NF)表内的每⼀个值只能被表达⼀次表内的每⼀⾏都应当被唯⼀的标⽰表内不应该存储依赖于其他键的⾮键信息(2)如果字段事实上是与其它表的关键字相关联⽽未设计为外键引⽤,需建索引(3)如果字段与其它表的字段相关联,需建索引(4)如果字段需做模糊查询之外的条件查询,需建索引(5)除了主关键字允许建⽴簇索引外,其它字段所建索引必须为⾮簇索引四、SQL语⾔编码规范4.1⼤⼩写规范(1)所有关键字必须⼤写,如:INSERT、UPDATE、DELETE、SELECT及其⼦句,IF……ELSE、CASE、DECLARE等(2)所有函数及其参数中除⽤户变量以外的部分必须⼤写(3)在定义变量时⽤到的数据类型必须⼩写4.2注释注释可以包含在批处理中,在触发器、存储过程中包含描述性注释将⼤⼤增加⽂本的可读性和可维护性,本规范建议:(1)注释以英⽂为主,实际应⽤中,发现以中⽂注释的SQL语句版本在英⽂环境中不可⽤,为避免后续版本执⾏过程中发⽣某些异常错误,建议使⽤英⽂注释(2)注释尽可能详细、全⾯创建每⼀数据对象前,应具体描述该对象的功能和⽤途,传⼊参数的含义应该有所说明,如果取值范围确定,也应该⼀并说明,取值有特定含义的变量(如boolean类型变量),应给出每个值的含义(3)注释语法:单⾏注释、多⾏注释单⾏注释:注释前有两个连字符(--)对变量、条件⼦句可以采⽤该类注释多⾏注释:符号之间的内容为注释内容,对某项完整的操作建议使⽤该类注释(4)注释简洁,同时应描述清晰(5)函数注释:编写函数⽂本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释,该注释以多⾏注释为主,主要结构如下:CREATE PROCEDURE sp_xxx。

数据库命名规范

数据库命名规范

数据库设计规范
一、数据库名
二、数据库设计命名参考规范
1、所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。

不允许使用其他字符作为名称。

2、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。

3、每个数据库对象表,视图,字段,存储过程,凡是能写注释的地方,应该写上注释,以便查看。

4、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。

@对长度也要有限制,最好不要超过30个字符。

5、注释分单行和双行,在数据库对象如函数,存储过程,视图等,都需要在页头添加注释,比如:
/* 功能描述:用户信息的登录验证
创建人:XX
创建日期:
修改备注1:按照日期,修改内容,人名
修改备注2:比如:yyyy-mm-dd 修改用户的角色问题AJIN */ 6、多对多连接表
如用户和组织对应关系表:User_Group_Relation
主键被其他表引用时:字段名和字段说明保持一致7、维护表
维护表中都要增加以下字段:
CreateDate创建时间
CreateBy创建人
LastEditDate最后修改时间
LastEditBy最后修改人
DeleteStatus删除状态1有效0无效
三、数据库设计命名参考。

mysql数据库表命名

mysql数据库表命名

mysql数据库表命名MySQL数据库表命名规范及注意事项在进行数据库设计和开发时,良好的数据库表命名是非常重要的,它可以使数据库结构清晰易读,方便维护和扩展。

本文将介绍一些常用的MySQL数据库表命名规范,并提供一些注意事项,帮助开发者更好地设计和命名数据库表。

一、MySQL数据库表命名规范1. 使用有意义的表名:表名应该能够准确地描述该表存储的数据,避免使用无意义的缩写或简单的数字,如“table1”或“data”。

2. 使用名词复数形式:表名应该使用名词的复数形式,以表示该表存储的是多个实例。

例如,使用“users”而不是“user”来表示存储多个用户的表。

3. 使用下划线作为单词分隔符:在表名中,可以使用下划线来分隔单词,以提高可读性。

例如,“user_info”表示存储用户信息的表。

4. 避免使用特殊字符和关键字:表名中避免使用特殊字符和MySQL关键字,以免引起语法错误或冲突。

5. 使用简洁明了的列名:表中的列名也需要符合规范,应该使用具有描述性的、简洁明了的列名,以便于理解和查询。

二、MySQL数据库表命名注意事项1. 不要使用缩写:尽量避免使用缩写,除非是广为人知的常用缩写。

使用完整的单词可以提高代码的可读性和可维护性。

2. 不要使用过长的表名:虽然表名要有描述性,但也不要过长。

过长的表名会增加代码的复杂性和可读性,不利于开发和维护。

3. 不要使用中文或其他非英文字符:虽然MySQL支持中文或其他非英文字符作为表名,但不推荐使用。

因为在跨平台或迁移数据库时,可能会出现兼容性问题。

4. 不要使用重复的表名:数据库中的表名必须是唯一的,不能有重复。

重复的表名会导致查询、更新和删除操作出现错误。

5. 不要使用数字开头的表名:表名不应以数字开头,因为开头的数字可能会被解释为一个无效的标识符。

6. 不要使用过于泛泛的表名:表名应该具体描述其所存储的数据,避免使用过于泛泛的表名,如“data”或“info”。

mysql-笔记-命名、索引规范

mysql-笔记-命名、索引规范

mysql-笔记-命名、索引规范1 命名规范普通索引:idx_字段名唯⼀索引:ux_字段名所有数据库对象名称必须使⽤⼩写字母并⽤下划线分割禁⽌使⽤mysql保留关键字 ---如果表名中包含关键字查询时,需要将其有单引号括起来见名识意,并且最后不要超过32个字符临时库表以tmp_为前缀并以⽇期为后缀,备份表以bak_为前缀并以⽇期为后缀所有存储相同数据的列名和列类型必须⼀致--⼀般作为关联列,如果查询时关联列类型不⼀致会⾃动进⾏数据类型隐式转换,会造成列上的索引失效,导致查询效率降低2 数据库基本设计规范没有特殊要求下,所有表必须使⽤innodb存储引擎--⽀付事务、⾏级锁、更好的恢复性、⾼并发下性能更好数据库和表的字符集统⼀使⽤utf8---统⼀字符集可以避免由于字符集转换产⽣的乱码,不同的字符集进⾏⽐较前需要进⾏转换会造成索引失效所有表和字段都需要添加注释--使⽤comment从句添加表和列的备注进⾏数据字典的维护尽量控制单表数据量的⼤⼩,建议控制在500万以内,过⼤会造成修改表结构、备份、恢复都会有很⼤的问题。

可以⽤历史数据归档应⽤于⽇志数据,分库分表应⽤于业务数据等⼿段谨慎使⽤mysql分区表--分区表在物理上表现为多个⽂件,在逻辑上表现为⼀个表,跨分区查询效率可能更低,建议采⽤物理分表的⽅式管理⼤数据尽量做到冷热数据分离,减⼩表的宽度--mysql限制每个表最多存储4096列,并且每⼀⾏数据在⼤⼩不能超过65535字节减少磁盘IO--保证热数据的内存缓存命中率,避免读⼊⽆⽤的冷数,经常⼀起使⽤的列放到⼀个表中避免更多的关联操作。

禁⽌在表中建⽴预留字段--⽆法确认存储的数据类型,对预留字段类型的修改会对表进⾏锁定禁⽌在数据库中存储图⽚,⽂件等⼤的⼆进制数据---IO操作耗时,通常存储于⽂件服务器,数据库只存储⽂件地址信息禁⽌在线上做数据库压⼒测试禁⽌从开发环境、测试环境直接连接⽣成环境数据库2 数据库字段设计规范优先选择符合存储需要的最⼩的数据类型-- 字段⼤,建⽴索引空间⼤,IO次数多,索引性能差 1 将字符串转换成数字类型存储如:IP地址-插⼊数据前先⽤inet_aton把ip地址转为整型,节省空间,显⽰数据时使⽤inet_ntoa把整型ip 地址转为地址显⽰即可 2 对于⾮负型的数据如⾃增id IP 要优先使⽤⽆符号整型来存储,⽆符号相对于有符号可以多出⼀倍的存储空间 SIGNED INT -2147483648~2147483647 UNSIGNED INT 0~4294967295 VARCHAR(N)中的N代表的是字符数,⽽不是字节数 使⽤UTF8存储255个汉字 Varchar(255)=765个字节。

MySQL数据库命名规范及约定

MySQL数据库命名规范及约定

MySQL数据库命名规范及约定⼀、【操作规范】1. 如⽆备注,则表中的第⼀个id字段⼀定是主键且为⾃动增长;2. 如⽆备注,则数值类型的字段请使⽤UNSIGNED属性;3. 如⽆备注,排序字段order_id在程序中默认使⽤降序排列;4. 如⽆备注,所有字段都设置NOT NULL,并设置默认值;5. 如⽆备注,所有的布尔值字段,如is_hot、is_deleted,都必须设置⼀个默认值,并设为0;6. 所有的数字类型字段,都必须设置⼀个默认值,并设为0;7. 针对varchar类型字段的程序处理,请验证⽤户输⼊,不要超出其预设的长度;8. 建表时将数据字典中的字段中⽂名和属性备注写⼊数据表的备注中(“PK、⾃动增长”不⽤写);9. 如⽆说明,建表时⼀律采⽤innodb引擎;⼆、【常⽤表名约定】0. 说明:表前缀⽤项⽬名称⾸字母缩写;所以表名都⼩写,单词之间⽤下划线分开,单词都⽤单数形式1. user – ⽤户2. category – 分类3. goods – 商品、产品等⼀切可交易⽹站的物品都⽤此命名4. good_gallery – 物品的相册5. good_cate – 物品的分类,除了单独作为表名,其他地⽅分类单词⼀律⽤缩写cate4. attr – 属性5. article – ⽂章、新闻、帮助中⼼等以⽂章形式出现的,⼀般都⽤此命名6. cart – 购物车7. feedback – ⽤户反馈8. order – 订单9. site_nav – 包括页头和页尾导航10. site_config – 系统配置表11. admin – 后台⽤户【RBAC标准表】12. role – 后台⽤户⾓⾊【RBAC标准表】13. access – 后台操作权限,相当于action【RBAC标准表】14. role_admin – 后台⽤户对应的⾓⾊【RBAC标准表】15. access_role – 后台⾓⾊对应的权限【RBAC标准表】16. 待续三、【常⽤列名约定】1. 表名_id – 通常⽤作外键命名2. cid – 特殊的编号,带有元数据,⽅便关联查询,你可以把它理解成类别(层次)编号。

Mysql数据库设计规范

Mysql数据库设计规范

Mysql数据库设计规范Mysql数据库规范Version 1.0创建时间2016-08-011.命名规范(1)库名、表名、字段名必须使用小写字母,并采用下划线分割。

(2)库名、表名、字段名尽量不要超过32个字符。

(3)库名、表名、字段名必须见名知意。

命名与业务、产品线等相关联。

(4)库名、表名、字段名禁止使用MySQL保留字。

(保留字列表见2.基础规范(1)使用INNODB存储引擎。

(2)表字符集使用UTF8字符集,校验字符集使用utf8_general_ci(3)所有表都需要添加注释;除主键外的其他字段都需要增加注释。

(4)禁止在数据库中存储图片、文件等大数据。

(5)每张表数据量建议控制在5000W以内。

(6)禁止在线上做数据库压力测试。

(7)禁止从测试、开发环境直连线上数据库。

3.库表设计(1)制止利用分区表。

(2)将大字段、访问频率低的字段拆分到单独的表中存储,星散冷热数据。

(3)采用合适的分库分表战略。

例如千库十表、十库百表等。

4.字段设计(1)建议利用UNSIGNED存储非负数值。

(2)建议利用INT UNSIGNED存储IPV4。

(3)用DECIMAL代替FLOAT和DOUBLE存储精确浮点数。

例如与泉币、金融相关的数据。

(4)INT类型固定占用4字节存储,(5)区分使用TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT数据类型。

例如取值范围为0-80时,使用TINYINT UNSIGNED。

(6)强烈建议利用XXX来代替ENUM类型。

(7)尽可能不利用TEXT、BLOB类型。

(8)禁止在数据库中存储明文密码。

(9)使用尽可能小的VARCHAR字段。

VARCHAR(N)中的N表示字符数而非字节数。

(10)区分使用DATETIME和TIMESTAMP。

存储年使用YEAR类型。

存储日期使用DATE 类型。

存储时间(精确到秒)建议使用TIMESTAMP类型。

(11)所有字段均定义为NOT NULL。

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

MYSQL数据库命名及设计规范
1.设计原则
1)标准化和规范化
数据的标准化有助于消除数据库中的数据冗余。

标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。

简单来说,遵守3NF标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。

表之间的关系通过外键相连接。

它具有以下特点:有一组表专门存放通过键连接起来的关联数据。

举例:某个存放客户及其有关定单的3NF数据库就可能有两个表:Customer和Order。

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

事实上,为了效率的缘故,对表不进行标准化有时也是必要的。

2)数据驱动
采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。

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

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

角色权限管理也可以通过数据驱动来完成。

事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。

3)考虑各种变化
在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。

举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。

所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。

2.数据库涉及字符规范
采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外).
注意事项:
1)以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@).
2)数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格.
3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
5)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符
型了.
3.数据库命名规范
数据库,数据表一律使用前缀
正式数据库名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.比如:
web_19floor_net
web_car
备份数据库名使用正式库名加上备份时间组成,如:
web_19floor_net_20070403
web_car_20070403
4.数据库表命名规范
数据表名使用小写英文以及下划线组成,尽量说明是那个应用或者系统在使用的.
相关应用的数据表使用同一前缀,如论坛的表使用cdb_前缀,博客的数据表使用supe_前缀,前缀名称一般不超过5字
比如:
web_user
web_group
supe_userspace
备份数据表名使用正式表名加上备份时间组成,如:
web_user_20070403
web_group_20070403
supe_userspace_20070403
5.字段命名规范
字段名称使用单词组合完成,首字母小写,后面单词的首字母大写,最好是带表名前缀.
如web_user表的字段:
userId
userName
userPassword
表与表之间的相关联字段要用统一名称,
如web_user表里面的userId和web_group表里面的userId相对应
6.字段类型规范
规则:用尽量少的存储空间来存数一个字段的数据.
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用varchar(20)的就不用varchar(255)
时间戳字段尽量用int型,如created:表示从'1970-01-0108:00:00'开始的int 秒数,采用英文单词的过去式;gmtCreated:表示datetime类型的时间,即形如'1980-01-0100:00:00'的时间串,Java中对应的类型为Timestamp
7.数据库设计文档规范
所有数据库设计要写成文档,文档以模块化形式表达.大致格式如下:
/***************************
数据库名称:xtata_test
数据库描述:测试数据库
版本:v0.1
设计人:许立强
设计时间:2008-5-13
*/
字段类型(长度)是否为空其他信息字段描述
testId Int(11)否主动增加测试的ID 8.索引使用原则:
1)逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引.考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写.
2)大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上.
3)不要索引blob/text等字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间.
4)不要索引常用的小型表
不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更别这样作了.对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间.
9.sql语句规范
所有sql关键词全部大写,比如SELECT,UPDATE,FROM,ORDER,BY等,所有的表名和库名都要用``包含
如:
SELECT COUNT(*)FROM`cdb_members`WHERE`userName`='aeolus';
10.其他设计技巧
1)避免使用触发器
触发器的功能通常可以用其他方式实现.在调试程序时触发器可能成为干扰.假如你确实需要采用触发器,你最好集中对它文档化.
2)使用常用英语(或者其他任何语言)而不要使用编码或者拼音首字母缩写
在创建下拉菜单、列表、报表时最好按照英语名排序.假如需要编码或者拼音首字母缩写,可以在旁边附上用户知道的英语.
3)保存常用信息
让一个表专门存放一般数据库信息非常有用.在这个表里存放数据库当前版本、最近检查/修复(对Access)、关联设计文档的名称、客户等信息.这样可以实现一种简单机制跟踪数据库,当客户抱怨他们的数据库没有达到希望的要求而与你联系时,这样做对非客户机/服务器环境特别有用.
4)包含版本机制
在数据库中引入版本控制机制来确定使用中的数据库的版本.时间一长,用户的需求总是会改变的.最终可能会要求修改数据库结构.把版本信息直接存放到数据库中更为方便.
5)编制文档
对所有的快捷方式、命名规范、限制和函数都要编制文档.
采用给表、列、触发器等加注释的数据库工具.对开发、支持和跟踪修改非常有用.
对数据库文档化,或者在数据库自身的内部或者单独建立文档.这样,当过了一年多时间后再回过头来做第2个版本,犯错的机会将大大减少。

6)测试、测试、反复测试
建立或者修订数据库之后,必须用用户新输入的数据测试数据字段.最重要的是,让用户进行测试并且同用户一道保证选择的数据类型满足商业要求.测试需要在把新数据库投入实际服务之前完成。

7)检查设计
在开发期间检查数据库设计的常用技术是通过其所支持的应用程序原型检查数据库.换句话说,针对每一种最终表达数据的原型应用,保证你检查了数据模型并且查看如何取出数据。

相关文档
最新文档