数据库设计规范
2019-10-24 本文已影响0人
ikeaforever
数据库规范
良好的数据库、表命名规范,提升可读性与降低维护成本。
数据库
- 命名:公司名+项目名,例如:tencent_lanjing
- 显示指明字符集,通常为:utf8mb4
CREATE DATABASE tencent_lanjing CHARACTER SET utf8mb4;
表
- 实体表命名,模块_子模块_实体,如:组织架构_部门_小组
- 关系表:rlt_表1_字段1_表2_字段2
- 备份表:统一后缀"_bak_201910241119"
- 日志表:统一后缀"_log"
- 创建表必须指定存储引擎,一般为:Innodb
字段
- int字段,必须标明有无符号 unsigned或signed
- 主键创建时,必须指定AUTO_INCREMENT
- 除非有必要不要指定字段非空
- 尽可能给字段添加默认值,例如:int为0,varchar为""
- 字段添加comment
- 建议增加创建人,创建时间,修改人,修改时间字段
- 建议增加逻辑删除字段is_del,使用tinyint
索引
- 索引名建议使用:idx_tablename_fieldname
创建表
CREATE TABLE treeapp_assettreeservice (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(128) NOT NULL COMMENT '名称',
`ip` varchar(128) NOT NULL COMMENT '名称',
`node_id` int(64) NOT NULL COMMENT '节点ID',
`create_user` varchar(64) NOT NULL COMMENT '创建人',
`description` text COMMENT '描述',
`asset_id` int(128) NOT NULL COMMENT '资产ID',
`created_stime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modified_stime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`is_del` tinyint NOT NULL DEFAULT 0 COMMENT '逻辑删除标记 0-未删除 1-已删除',
PRIMARY KEY (`id`),
KEY `idx_treeapp_assettreeservice_node_id` (`parent_id`)
) ENGINE=Innodb AUTO_INCREMENT=100000 DEFAULT CHARSET=utf8mb4 COMMENT='服务树服务';