Skip to content

Commit

Permalink
调整view方法的顺序和菜单保持一致,使用marked.js转html替换设计规范页面,方便自行调整
Browse files Browse the repository at this point in the history
  • Loading branch information
hhyo committed Jun 5, 2019
1 parent 9da79d3 commit 4344c76
Show file tree
Hide file tree
Showing 3 changed files with 138 additions and 312 deletions.
44 changes: 17 additions & 27 deletions docs/mysql_db_design_guide.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
# 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. 规范背景与目的
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. 规范背景与目的

Expand Down Expand Up @@ -69,10 +63,6 @@ MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的
7. 【建议】文本数据尽量用`varchar`存储。因为`varchar`是变长存储,比`char`更省空间。MySQL server层规定一行所有文本最多存65535字节,因此在utf8字符集下最多存21844个字符,超过会自动转换为`mediumtext`字段。而`text`在utf8字符集下最多存21844个字符,`mediumtext`最多存2^24/3个字符,`longtext`最多存2^32个字符。一般建议用`varchar`类型,字符数不要超过2700。
8. 【建议】时间类型尽量选取`timestamp`。因为`datetime`占用8字节,`timestamp`仅占用4字节,但是范围为`1970-01-01 00:00:01``2038-01-01 00:00:00`。更为高阶的方法,选用`int`来存储时间,使用SQL函数`unix_timestamp()``from_unixtime()`来进行转换。

详细存储大小参加下图:

![MySQL数据类型存储大小](https://github.com/hhyo/archery/raw/master/sql/static/pics/mysql_datatype.png)

### 2.1.4 索引设计

1. 【强制】InnoDB表必须主键为`id int/bigint auto_increment`,且主键值禁止被更新。
Expand Down
Loading

0 comments on commit 4344c76

Please sign in to comment.