文档章节

db.数据库开发规范-初稿.md

北京起航
 北京起航
发布于 2015/05/29 11:31
字数 624
阅读 64
收藏 1

#数据库开发规范-初稿

#命名

  1. 大小写 表名、字段名小写;sql关键字大写;单词间下划线分割
  2. 表名 模块_开头;关联表后缀_rel 如 :mon_ 监控模块 ;sys_ 系统模块
  3. 字段名 c_开头 下划线分隔 转java对象,属性为小骆驼命名法无下划线; 注:select c_name as name from 表,在groovy.sql和dbutils需要这样转化才能构建出前台需要的视图

#主外键

  1. 每个表要有主键,。联合主键、唯一键中的字段非空
  2. 主键id字段类型,系统表、固化数据表、字典表等,具有明确意义的用字符型,其他如数据表、用户动态录入的表ID为数值型
  3. 所有表都需要建外键(除特殊情况外:如历史数据;根据实际情况进行分析,讨论通过后,可以无外键) 外键,采用表名前缀,避免名称重复

#类型

  1. 枚举类型存储id,注释写明含义 {6:"严重",5:"主要"},参见枚举AlarmLevel

  2. boolean类型用 TINYINT (1)

  3. 数据表时间用long

#扩展字段

主表增加 两个tag冗余字段,一个json扩展信息字段,作为二次开发时使用; 开发阶段不允许用扩展字段

c_json varchar(500) COMMENT '扩展信息json',
c_tag1 VARCHAR(36) COMMENT '冗余字段1',
c_tag2 VARCHAR(36) COMMENT '冗余字段2',

#其他

  1. 表、列必须有注释

  2. 标识符不能过长(30字节);包括表名、列名、索引名称等

  3. 表可以指定存储引擎;不要指定字符集,由数据库创建时,统一指定 如: ENGINE=InnoDB DEFAULT CHARSET=gbk 去掉字符集

#sql示例

DROP TABLE IF EXISTS r_xxx_test;
CREATE TABLE r_xxx_test(
    c_id INT (10) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    c_name VARCHAR (200) NOT NULL COMMENT '名称',
    c_group_id INT (10) NOT NULL COMMENT '分组ID',
    c_description VARCHAR (500) COMMENT '描述',
    c_sort_id INT (10) COMMENT '排序号',
    c_is_enabled TINYINT (1) DEFAULT 1 COMMENT '是否启用',
    c_json VARCHAR (500) COMMENT 'json格式扩展信息',
    c_tag1 VARCHAR (36) COMMENT '冗余字段1',
    c_tag2 VARCHAR (36) COMMENT '冗余字段2',
    PRIMARY KEY (c_id),
    CONSTRAINT fk_xxx_test_group_id FOREIGN KEY (c_group_id) REFERENCES r_report_group (c_id) ON DELETE CASCADE
) ENGINE = INNODB COMMENT = '报表模板';

#数据库编码 mysql数据库脚本文件必须是:utf-8,数据库连接字符集:UTF-8,数据库是GBK;存储引擎INNODB Sql文件用ultraedit等工具 转换为utf8无bom格式 #数据库连接样例 jdbc:mysql://127.0.0.1:3306/riil_product?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

© 著作权归作者所有

共有 人打赏支持
北京起航
粉丝 55
博文 52
码字总数 29304
作品 0
海淀
架构师
私信 提问
加载中

评论(2)

北京起航
北京起航

引用来自“neo-chen”的评论

我极不同意你这样的规范:)呵呵。 一个模块一个schema 更好区分与隔离,权限颗粒度更细。 字段名加前缀太罗嗦。 索引我通常与字段名相同,更好理解。 字符集取决与语言范围,如果仅中文,GB2312 更高效。
远程连接我通常开启 压缩功能以减少传输时间。
欢迎讨论。 schema切换也有复杂性,比前缀适应范围要小; 字段前缀,是为了防止和关键字、保留字重复。
netkiller-
netkiller-
我极不同意你这样的规范:)呵呵。 一个模块一个schema 更好区分与隔离,权限颗粒度更细。 字段名加前缀太罗嗦。 索引我通常与字段名相同,更好理解。 字符集取决与语言范围,如果仅中文,GB2312 更高效。
远程连接我通常开启 压缩功能以减少传输时间。
mokeyjay/Codeigniter-Database-Class

请注意: 此项目已转移至 Github 这里将不再继续维护,请移步至 → mokeyjay/Codeigniter-Database-Class ##Codeigniter-Database-Class是什么? 是由超能小紫出品的数据库操作类 (上面应有...

mokeyjay
2015/12/28
0
0
静态博客生成系统--WLBLOG

1.简介 WLBLOG是一个由Python+Tornado实现的静态博客生成系统。采用markdown撰写文章。开发初衷一是为了Tornado框架的学习,二是作者对WordPress的繁琐和臃肿十分不满。目前还很粗糙,持续改...

24K宅
2015/08/02
1K
0
easyphp框架

github : https://github.com/yanyumiao/easyphp oschina : https://git.oschina.net/YanYuMiao/easyphp 关于easyphp easyphp是一个非常简单的php框架,全部框架的实现只使用了很少的代码 特...

燕玉苗
2016/08/09
47
2
基于 Laravel 的后台管理系统,--UMI Admin

不同于其他后台管理, UMI Admin 可用于快速搭建后台 对于中小型后台甚至不用写任何代码, 如果有帮助 请关注,并给予星星 谢谢 Umi 是由laravel 5.3开发的全面的后台管理系统, 包括以下特性: ...

taoyu65
2017/07/29
664
0
PHP 开发框架--OSphp

'** ' OSphp开发框架 ' Version:0.8 ' Author: 13yd(ai@13yd.com) ' Copyright (C) 2012-2016 OS软件 版权所有 www.ongsoft.com '** 支持多库读取 完善的数据库操作方式 常用组建封装 无模版...

13yd
2015/12/28
823
0

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
5
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
5
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部