mysql schema命名规范_数据库设计 命名及编码规范

http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx

引用

一、综述

命名和编码过程中,定义有意义的名称,以易于理解、方便书写为原则。

(1)避免使用中文,尽量使用全拼音或全英文,以方便国际化;

(2)避免拼音和英文的中西合璧,如:CAOZUO_TIME;

(3)避免在命名中包括空格及特殊字符;

(4)避免使用保留字;

(5)避免名称太长,注意缩写的使用,缩写规则为单词前4个字母,合成词取每个单词前两位组成4位缩写,对于约定束成的缩写不必遵守取4位的规则,比如:NO代表NUMBER,如果取NUMB反而让人费解。

二、命名规范

2.1、数据库

前缀:使用与数据库业务对象相对应的英文单词或英文缩写;

名称:使用与数据库业务性质相对应的英文单词或英文缩写;

举例:BHO_STATISTIC

注意:

(1)名称一律使用单数形式;

(2)动词一律保持动宾结构,通常增、删、改、查、统计的动作,使用ADD、DEL、UPD、QRY、STA作为缩写,以降低命名的长度;

2.2、数据库文件及文件组

(1)数据库文件存放路径:D:\DATA、E:\LOG;

(2)数据库文件组命名:主文件组 PRIMARY,次文件组 FG_业务模块_数据分类,如:FG_CONFIG_ACCOUNT;

(3)数据库主数据文件命名:DBNAME_DATA.MDF,如:BHO_STATISTIC_DATA.MDF;

(4)数据库从数据文件命名:DBNAME_DATA_XX.NDF,XX为两位整数,不足两位第1位用0补齐,如:BHO_STATISTIC_DATA_01.NDF;

(5)数据库日志文件命名:DBNAME_LOG_XX.LDF,XX为两位整数,不足两位第1位用0补齐,如:BHO_STATISTIC_LOG_01.LDF;

2.3、数据库逻辑对象

2.3.1、架构

通常使用业务模块名作为架构名,如:配置模块(CONFIG)。

(1)方便数据库对象分类;

(2)方便权限管理。

2.3.2、表

前缀、名称、后缀均以下划线(_)间隔,字母均使用大写。

(1) 实体表

前缀:ETB(E表示ENTITY)

名称:架构名.ETB_名词

举例:PUBLIC.ETB_LEAGUE

(2)关系表

前缀:RTB(R表示RELATION)

名称:架构名.RTB_实体英文单词缩写_实体英文单词缩写[_实体英文单词缩写…]

举例:PUBLIC.RTB_HOPA_LEAG(即CONFIG.RTB_HOMEPAGE_LEAGUE)

(3)事实表

前缀:FACT

名称:架构名.FACT_动宾结构

举例:CONFIG.FACT _ADD_USER

(4)报表

前缀:RPT(REPORT的简写)

名称:架构名.RPT_动宾结构

举例:CONFIG.RPT_ ADD_USER

(5)字段

名称:词_词,全部大写

举例:FIRST_NAME

注意:

a)避免字段名中包含表名,如:EMPLOYEE_FIRST_NAME;

b)避免使用数字,如:COLUMN_1、COLUMN_2;

c)避免字段名包含数据类型,如:COLUMN_CHAR、COLUMN_NUMBER;

c)冗余字段可考虑加上前缀X或R,如:X_COL_NAME

(6)索引

前缀:IX,用两个字母是为了和约束一致起来,约束:PK、FK、UQ、CK、DF、NL;

名称:表名_列名1[_列名2…],为避免索引名太长,也可以使用表名_N,N为自然数;

举例:IX_ CONFIG _FACT_ADD_USER_FACT_ID、IX_ CONFIG _FACT_ADD_USER_1;

2.3.3、视图

前缀:V

名称:架构名.V_动宾结构

举例:CONFIG .V_QRY_USER

2.3.4、存储过程

前缀:P

名称:架构名.P_动宾结构

举例:CONFIG .P_ADD_USER

2.3.5、触发器

前缀:Tr

名称:架构名.Tr_动宾结构

举例:CONFIG.Tr_ADD_USER

2.3.6、函数

前缀:F

名称:架构名.F_动宾结构

举例:CONFIG.F_QRY_USER

其他未列举的数据库逻辑对象,可参考以上规则进行命名。

三、编码规范

3.1、外部参数

(1)对使用频繁、关键性的变量,请在定义时加上注释标明其含义;

(2)尽量少用单字母变量,禁止使用诸如i、j等作为变量名;

(3)注意小写字母l和数字1之间的区别使用;

(4)参数命名约定:@名称_名称,变量名称全部用小写,以示与表中大写字段区别,如:@user_name;

3.2、内部参数

同外部参数

3.3、关键字及系统内置对象

(1)关键字、系统函数、系统变量等,全部大写;

(2)数据类型使用小写,以与参数一致;

3.4、代码块

(1)使用TAB来缩进,设置TAB = 4,并将TAB自动转换为空格;

(2)每行控制在列边界80以内;

(3)注释全部另起一行,不要和代码合在一行,单行注释采用--,,多行注释采用/* 注释内容 */。另外注释内容尽量使用英文,中文注释在英文版的DBMS中可能会导致错误。

(4)多个Begin…End语句嵌套时采用如下方式

BEGIN /*1*/

...

BEGIN /*1.1*/

...

BEGIN /*1.1.1*/

...

END /*1.1.1*/

BEGIN /*1.1.2*/

...

END /*1.1.2*/

END /*1.1*/

END /*1*/

其中1表示第一级嵌套,1.1表示第二级嵌套,1.1.1表示第三级嵌套,1.1.2表示第三级的第二个嵌套… ,一般不要超过三级嵌套。

(5)在保证缩进格式的前提下,可以通过对齐关键字来提高代码的可读性,如下:

SELECT *

FROM SCHEMA_NAME.TABLE_NAME

WHERE COL_NAME = 'XXX'

3.5、可编程对象

3.5.1、代码模板

推荐使用SQL  SERVER开发工具中的模板来生成格式,再根据个人习惯进行适当修改即可。

3.5.2、全文注释

/******************************************************************

用   途:

作   者:

创建日期:

调用举例:

修订记录:

  :修改内容简要说明

******************************************************************/

/******************************************************************

Function:

Author:

Createdate:

execute e.g:

modify record:

:description

******************************************************************/

3.5.3、返回值

存储过程中的返回值,分两种:RETURN和OUTPUT参数。

(1)RETURN值作为存储过程的执行状态,0为正常结束,非0为异常结束。

(2)使用OUTPUT参数返回错误编号和错误文本,以供弹出提示;

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-01-21 13:14

浏览 1325

评论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 大表 备份_MySQL大表备份的简单方法

MySQL大表备份是一个我们常见的问题,下面就为您介绍一个MySQL大表备份的简单方法,希望对您学习MySQL大表备份方面能有所帮助。这里所说的大表是超过4G以上的表,我目前见到过最大为60多G的单表,对于这种表每…

mysql多数据源切换_CI 多数据库操作 切换数据库

CI 切换数据库是很方便的,如:连接多数据库如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:$DB1 $this->load->database(group_one, TRUE);$DB2 $this->load->database(group_two, TRUE);注意&#xff…

mysql用的cap中哪两个_分布式事务CAP定理和BASE理论

课程总计41课时,从什么是事务讲起,直到分布式事务解决方案,很的0基础基础与提升系列课程。对于难以理解的知识点,全部用画图实战的方式讲解。彻底明白事务的四个特性:原子性、一致性、隔离性、持久性,用场景…

怎么检测mysql主从正常_使用pt-table-checksum检查主从复制是否正常

其实对于一个小小的DBA来说,有时候是无法避免这些问题的。于是我们就需要一个工具,来检查主从复制是否正常,是否出现了错误。pt-table-checksum。相关阅读:MySQL 主从复制事件校验 MySQL Replic…

java 自动类型_java类型自动转换

package com.kevin.basic;/** java类型自动转换方面的知识点* int类型 double类型 默认类型*/public class Test {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stub/* int类型是整数的默认类型。* (1)第一种:正确运行…

java 不显示控制台_命令行启动java程序不显示控制台窗口

关键:start javaw –jar xxx.jar一个例子:ECHO OFFREM "zcx eclipse help script"set ehome"f:\eclipse"pushd %ehome%if "%1" "start" (explorer http://localhost/help/index.jsp)start javaw -classpath pl…

java 修改ini文件_Java读取和修改ini配置文件

/*** 修改ini配置文档中变量的值* param file 配置文档的路径* param section 要修改的变量所在段名称* param variable 要修改的变量名称* param value 变量的新值* throws IOException 抛出文档操作可能出现的io异常*/public static boolean setProfileString(String file,St…

java定义接口规范_关于java的接口的一些规范

一、Api请求及响应规范 为了严格按照接口进行开发,提高效率,对请求及响应格式进行规范化。1、get 请求时,采用key/value格式请求,SpringMVC可采用基本类型的变量接收,也可以采用对象接收。2、Post请求时,可…

a java虚拟机_Java虚拟机

内存分配以及回收Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。虚拟机栈:线程…

java tostring的用处_JAVA的tostring()方法的作用是什么呢?

展开全部1.toString方法Object类具有一个toString()方法,你创建的每个类都会继承62616964757a686964616fe4b893e5b19e31333365666236该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需…

java calendar 毫秒_java Calendar(将时间精确到毫秒)

package com.neusoft.date;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class RiQi{public static void main(String []args){System.out.println(new Date());//calendar可以将时间精确到毫秒Calendar calendar new Gregori…

java 1000到9999_java – 可以0.99999999999乘以四舍五入到1.0?

如果你用someInt(> 0)乘以低于1.0的最大值,结果永远不会是someInt。这可以穷尽地测试整数,像这样:Double greatestLessThanOne Double.longBitsToDouble(4607182418800017407L);// Assert that greatestLessThanOne is indeed the larges…

mysql 表 类型_mysql表类型

MySQL支持6种不同的表类型:BDB、InnoDB、HEAP、ISAM、MERGE以及MyISAM。其中 BDB,InnoDB单独属于一类,称为“事务安全型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(non- transaction-safe)。事务安全型BD…

java软件工程_java复习

计算机一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。计算机硬件:CPU、主板(motherboard)、内存(memory)、电源、主机箱、硬盘、显卡、键盘、鼠标、显示器等IO:input输入(鼠标键盘)、output输出(显示器音响)冯诺依曼体系结…

python偶数分解成两个素数之和_偶数 2021218918 ,有多少种方法分解成两个素数之和?...

对于上面问题2N2021218918,满足“pq2N”的素数对(p,q)的个数真值为3289208个。下面对这个值进行理论探求分析,请大家不吝赐教!下面先来进行基于小素数因子机理哥猜数分析:即对于大于2的偶数2N的小素数因子t,t∈A{≤(2N…

2008r装mysql_RMySQL安装及操作(详细版)

系统配置:Windows XP 32位R 3.1.1一、安装RMySQL:1,安装RTools并配置环境变量:我的电脑——属性——高级——环境变量,在系统变量一栏中选择PATH,点击编辑,在后面添加RTools的路径(如:D:\Rtools\bin;D:\Rtools\gcc-4.6.3\bin;D:\R…

apache 编译php mysql_apache静/动态编译在apache+php+mysql应用

【IT168 服务器学院】我想大家有不少都成功实现apachephpmysql,网上的文章也有不少,但我发现不少文章都是抄来抄去,并且没有说明白编译的方式,有的索性apache1.3的编译方法原封不动地搬过来套在apache2.0,显然误导一些…

java getparametermap_重写getParameterMap后,报错 ,

想做个参数过滤功能,如何修改,或者其他实现方式ServletExcludeHadler类在HttpServletRequestWrapper类里重写了getParameterMap现在报错java.lang.ClassCastException: org.apache.catalina.util.ParameterMap cannot be cast to java.util.HashMapat co…

java sdcard path_更改 android 文件存放目录 getWritablePath() 为sdCard

CCFileUtils::sharedFileUtils()->getWritablePath() 默认为 /data/data/prjName/"Java_org_cocos2dx_lib_Cocos2dxHelper.h" 的 std::string getFileDirectoryJNI() 方法通过 jni 调用 org.cocos2dx.lib.Cocos2dxHelper.getCocos2dxWritablePath() 获取具体&qu…

java 抽样_Java编程实现二项分布的采样或抽样实例代码

本文研究的主要是Java编程实现二项分布的采样或抽样,下面是详细实现代码。如下程序为n100,p0.9的二项分布采样,共采样10000次package function;import org.apache.commons.math3.distribution.BetaDistribution;import org.apache.commons.ma…