数据库设计规范

数据库规范

良好的数据库、表命名规范,提升可读性与降低维护成本。

数据库

  • 命名:公司名+项目名,例如: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='服务树服务';

你可能感兴趣的:(数据库设计规范)