文档章节

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

北京起航
 北京起航
发布于 2015/05/29 11:31
字数 624
阅读 64
收藏 1
点赞 0
评论 2

#数据库开发规范-初稿

#命名

  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

© 著作权归作者所有

共有 人打赏支持
北京起航
粉丝 53
博文 51
码字总数 29304
作品 0
海淀
架构师
加载中

评论(2)

北京起航
北京起航

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

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

今天早上出门去医院挂号,走到地铁忘记带钱,又折返回去拿钱包,挂好号了,走的时候却忘记把市民卡给双凤。一系列的不走心事情搞得我想死的心都有了。 想看些技术博客,看一页就没有耐心往下...

-波仔- ⋅ 2016/08/02 ⋅ 0

生产数据库是否该对开发人员设限?

话题 Topic 一个DBA老师正在苦逼地恢复被开发删除的数据。作为一家有100人以上IT人员的公司,开发人员是否应该碰生产库?能做得到不碰吗?(本期话题贡献人:杨志洪) 精彩论点 【杨建荣】r...

dbaplus ⋅ 2015/09/28 ⋅ 0

Berkeley DB 6.2.23 发布,高性能嵌入数据库编程库

Berkeley DB 6.2.23 发布了 ,Berkeley DB(BDB)是一个高性能的,嵌入数据库编程库,和C语言,C++,Java,Perl,Python,Tcl以及其他很多语言都有应用程序编程界面。Berkeley DB可以保存任意...

oschina ⋅ 2016/04/15 ⋅ 6

mokeyjay/Codeigniter-Database-Class

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

mokeyjay ⋅ 2015/12/28 ⋅ 0

PHP 开发框架--OSphp

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

13yd ⋅ 2015/12/28 ⋅ 0

uikoo9/jfinalQ-gencode

注意 gitosc停止更新,转移到github:https://github.com/uikoo9/jfinalQ-gencode jfinalQ-gencode jfinalQ代码生成工具 采用velocity模版技术 可以多表同时生成 jfinalQ 基于jfinal2.0,易学...

uikoo9 ⋅ 2015/02/05 ⋅ 0

HTML5.1 将于 9 月份正式发布,更新内容预览

HTML 5.1 来了。HTML 5 诞生多年以来,受到多数主流浏览器的支持。接下来,这门互联网编程语言也将走上更加规范化的道路。 W3C组织最新宣布,正在编写 HTML 5.1 的语言标准规范,预计6月中旬...

oschina ⋅ 2016/04/18 ⋅ 10

静态博客生成系统--WLBLOG

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

24K宅 ⋅ 2015/08/02 ⋅ 0

hashlib模拟用户登陆

设计一个验证用户登录的函数,根据用户输入的口令是否正确,返回True或False。数据库对用户明文密码进行了md5加密。

兔之 ⋅ 2015/03/06 ⋅ 0

easyphp框架

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

燕玉苗 ⋅ 2016/08/09 ⋅ 2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部