整理了一份数据库设计规范,可做模板参考

来都来了 2020-03-24 16:44:43 ⋅ 1466 阅读

前言

疫情期间开发了一款新应用,目前项目正在验收阶段,需要补充一些文档(例如:技术方案、数据库设计和系统测试要求等)。那么这篇文章就以数据库设计为主分享给大家,有更好的建议可以留言哦~~~

引言

1、编写目的

本文档是项目方案的重要组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本开发、本文档遵循《数据库设计和开发规范》。使用对象是需求人员、系统设计人员、开发人员、测试人员。

2、术语表

定义文档中涉及的重要术语,为使用者在阅读时提供必要的参考信息。

术语表

3、参考资料

参考资料

数据库环境说明


数据库环境说明

备注:在实际开发中可能需要DBA配合

数据库名门规则

提示:如果本数据库的命名规则与实际不一致,请做出解释。

1、基本命名原则

Ø规范:字母全部小写原则

所有数据库对象命名字母全部小写,统一大小写有助于在多数据库间转移。

Ø规范:字符范围原则

只能使用英文字母、下划线、数字进行命名,且首位字符必须是英文字母。

Ø规范:分段命名原则

命名中多个单词间采用下划线分割,以便阅读同时方便某些工具对数据库对象的映射。例如:user_name。

Ø规范:不要用保留词

数据库对象命名不能直接使用数据库保留关键字,但分段中可以使用。如user不能用于表名、列名等,但是user_name可以用于列名,user_info也可以用于表名。

Ø规范:同义性原则

对于同一含义尽量使用相同的单词命名,不管使用英文单词、英文缩写还是拼音首字母,以免引起误解。如telphone的A表中表示固定电话号码,在B表中就不应该用于表示移动电话号码。尽量避免同一单词表示多种含义的情况。

Ø规范:命名方式一致原则在一个系统、一个项目中尽量采用一致的命名方式,都采用英文单词或者拼音首字母。尤其要避免在一个对象命名中同时采用英文单词和拼音首字母。如确实需要在一个项目中采用两种命名方式,考虑系统功能设计相关表(开发)使用英文单词命名,业务相关的表(实施)使用拼音首字母。

2、命名前缀规范

Ø规范:以下对象命名采用固定前缀进行命名,前缀表示数据库对象的类型,前缀代码规范如下:


命名前缀规范

3、表和列规范

3.1 表规范

Ø规范:表名采用多段式命名,各单词间用下划线分隔;

Ø规范:表名只允许用英文字母、下划线、数字进行命名,不允许用中文或者其他符号;

Ø规范:表名全部字母小写;

Ø规范:根据历史习惯各系统常用表类前缀作如下约定:


表规范

Ø建议:表名也用于相关索引、分区、分区表空间、约束、主键等命名,因此为了避免相关对象命名长度超过限制,建议表名长度不要超过20。

3.2 列规范

Ø建议:列名只允许用英文字母、下划线、数字进行命名,不允许用中文或者其他符号。

Ø规范:列名字母全部小写。

Ø规范:列名采用多段式命名时,各单词间用下划线分隔;
Ø规范:列名不能直接使用数据库保留字;

Ø规范:日期类型字段推荐以“_date”结尾的名字命名,时间类型的字段推荐以“_time”结尾的名字命名。

3.3 常用字段规范


常用字段规范

4、物理表设计

4.1 用户信息表

用户信息表

MySQL脚本:

create table sys_user
(
id varchar(32) not null comment '主键id'
primary key,
user_name varchar(30) not null comment '用户名',
mobile int(11) null comment '手机号码',
password varchar(30) null comment '密码',
status char(2) default '0' null comment '状态(0-可用,1-不可用,2-删除)',
create_time timestamp default CURRENT_TIMESTAMP null comment '创建时间',
update_time timestamp default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间'
)
comment '用户信息表';

后面大家可以补充更多物理表信息啦!



全部评论: 0

    我有话说:

    「轻阅读」聊聊6种常用的架构设计模式(上)

      许多现代应用都需要在企业级规模上进行构建,有时甚至需要在互联网规模上进行构建。这些应用都需要满足扩展性、可用性、安全性、可靠性和弹性需求。 在本文中,我将谈论一些设计模式,这些模式

    您应该避免的五个简单的数据库设计错误

    Anith 在他非常成功的文章 Facts and Fallacies about First Normal Form 之后,对五个常见的数据库设计错误进行引人入胜的讨论,尽管使用它们的不幸后果

    「转载」使用DDD指导业务设计的一点思考

    领域驱动设计(DDD) 是 Eric Evans 提出的种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文

    Dgraph 1.2.8 发布,事务性分布式图形数据库

    Dgraph 1.2.8 发布。Dgraph 是一个扩展的,分布式的,低延迟的图数据库,目标是提供 Google 生产水平的规模和吞吐量,在超过 TB 的结构数据里,为用户提供足够低延迟的实时

    Redis面试整理:Redis几种数据类型的用法和应用场景重新梳理

    1、字符串 1.1 介绍 string 字符串类型是Redis中最为常用和基础的存储类型,是一个由字节组成的序列,他在Redis中是二进制安全的,也可以认为string字符串数据类型能够接收任何格式

    搞对数据库连接池,这次从100优化到3ms!阿里架构师都说好

    我在研究HikariCP(一个数据库连接池)时无意间在HikariCP的Github wiki上看到篇文章(即前面给出的链接),这篇文章有力地消除我一直以来的疑虑,看完之后感觉神清气爽。故在此

    推荐款功能强大,开源免费的H5视化编辑器

    H5-Dooring 是款功能强大,开源免费的H5视化页面配置解决方案,致力于提供套简单方便、专业可靠、无限可能的H5落地页最佳实践。技术栈以react为主, 后台采用nodejs开发. 预览

    后端Coder如何好代码设计?

    来源:http://r6d.cn/C5Ja 说明:生鲜电商属于一个软件的产品,那么如何好代码设计呢?代码设计,是程序员项目时,在coding之前非常重要的一个步骤,可以说关系到整个系统

    【总结】前端5大常见设计模式,代码看你就懂!

    用代码示例来掌握前端5大设计模式

    推荐款前端数据源管理工具 algeb

    ALGEB 简介 这是一个比较抽象的库,开始可能比较难理解。我写它的初衷,是创建响应的数据请求管理。在传统数据请求中,我们只是把携带ajax代码的堆函数放在一起,这样就可以调用接口。但是这种

    MySQL 插入 100万 条数据整理笔记

    多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同时间对一个表的写操作不应该是独占的吗? 答:在数据插入操作的时候,整体时间的分配是这样的: 1、多链接耗时 (30

    电商实战篇:商品模型分析与设计(超级实用)

    最近在设计电商平台,那么在整个电商系统中商品模型是非常重要的模块,也可以说是整个电商的核心,那么接下来我们一起分析一下,设计出一个完整的商品模型

    Google技术:你不了解Google最新发布的JS代码规范 的最佳实践

    Google为了那些还不熟悉代码规范的人发布一个JS代码规范。其中列出编写简洁易懂的代码所应该的最佳实践。

    MySQL数据库开发需要注意的小细节整理

    尽量不在数据库运算控制单表数据量 纯INT不超过10M条,含Char不超过5M条保持表身段苗条平衡范式和冗

    kongx v2.0.0 发布,网关 kong 视化管理平台

    kongx v2.0.0 已经发布。kongx是网关 kong 的视化界面管理平台(参考 konga 的部分界面布局方式),能够集中化管理应用不同环境的网关配置,提供同步各环境的网关配置功能,并且

    Spring中的9种设计模式汇总

    Spring中的9种设计模式汇总

    不要把Redis当垃圾桶,T也有开发设计规范,避坑吗?!

    Redis不是垃圾桶也不是 SUPER MAN,能力和资源都有限,不合理的使用会降低它的健康度,严重时甚至会

    IntelliJ 平台 2020 年的路线图,项目模型将重新设计

    协同编辑、支持云执行、重新设计项目模型