设计规范:
1.采用有意义的字段名
尽可能地把字段描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。首个字母小写,多个单词的话,每个单词的首个字母要求用大写!不要用下划线来连接每个单词. 2.遵守3NF
标准3NF规定:
A.表内的每一个值都只能被表达一次。
B.表内的每一行都应该被唯一的标识(有唯一键)。
C.表内不应该存储依赖于其他键的非键信息。
3.小心保留词
要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC连接程序里有个表,其中就用了DESC作为说明字段名。后果可想而知!DESC 是DESCENDING缩写后的保留词。表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。
4.表应避免可为空的列
5.保持字段名和类型的一致性
在命名字段并为其指定数据类型的时候一定要保证一致性。假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。记住,你干完自己的活了,其他人还要用你的数据库呢。

命名规范
(所有的名字加上前缀:Bio,在加上大板块前缀,如ERP的表应为:BioErpBaseUser)
相关前缀:
Erp系统:BioErp 电子商务:BioShop 门户网站:BioCo 相关子前缀:
基本: Ba(Base) 客服: Cs 人事: Hr 表单: Tb
销售: Sa(Sale) 等等
1.数据库(Database)的定义
数据库名称=数据库内容标识(首字大写)

2.表(Table)的定义
命名应尽量反映存储的数据内容。
表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识 表名称=表名前缀+表内容标识(首字大写) 如客服相关联的一系的表以Cs作为前缀,
即有表名:BioErpCsHistory, BioErpCsContact, BioErpCsBusiness
符合以下规范:
1. 统一采用单数形式,反对BioErpBaUsers
2. 首字母大写,多个单词的话,单词首字母大写,反对bioErpCsHistory /BioErpBaUseraccout/BioErpBaORDER
3. 避免中文拼音,反对BioErpBaAgentBaoXiao
4. 避免下划线连接,反对BioErpBa_UserAccout(下划线适用Oracle数据库) 5. 避免保留字

3.字段
字段名如userID/userName/userType 符合以下规范:
1. 首个字母小写,多个单词的话,单词首字母大写,反对UserID/Userid 2. 必须有一主键,主键直接用ID 3. 常用的字段name,不直接用name,而是表名+Name,如userName/orderName 4. 常用的字段desc,不直接用desc,而是表名+Desc,如userDesc/orderDesc 5. 大写字母前必须包含至少两个小写的字母,反对uID/oID 6. 避免中文拼音 7. 避免下划线连接 8. 避免名称过长 9. 避免保留字

4.变量名
首个字母小写,多个单词的话,每个单词的首个字母要求用大写,如@employeeName

5.对象
1. 存储过程以SP_为前缀 2. 触发器以TR_为前缀 3. 函数以FN_为前缀 4. 主键以PK_为前缀 5. 索引以IX_为前缀
6. 前缀后的首字母大写,多个单词的话,单词首字母大写,如BioErpSP_CountFee 7. 所有的关键字的所有字母必须大写,如SELECT userID,username FROM User

6.命名中其他注意事项
禁止使用中文命名!
命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。 命名都采用英文字符,每个单词的首个字母要大写。
7.SQL语句的编写规范
数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下:
关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、GROUP BY、FROM、WHERE、UPDATE、INSERT INTO、SET、BEGIN、END等

8.内容注释
存储过程,触发器,函数,视图等都应该加上内容注释。注释格式如下: -- =============================================
-- Author: Tiger
-- Create date: 2009-4-15
-- Description: 根据信息完整度生成客户统计数据 -- Update: 2009-4-30 By Tiger
-- ============================================= 表的陌生字段应当加上简要的字段说明和内容说明。

设计规范 命名规范

sql 设计规范的更多相关文章

  1. MySQL数据库规范 (设计规范+设计规范+操作规范)

    I 文档定义 1.1 编写目的 为了在软件生命周期内规范数据库相关的需求分析.设计.开发.测试.运维工作,便于不同团队之间的沟通协调,以及在相关规范上达成共识,提升相关环节的工作效率和系统的可维护性. ...

  2. DBA的规范

    DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆.   2.所有上线需求必须走工单系统,口头通知视为无效.   3.在对大表做表 ...

  3. DBA的40条军规

    DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆. 2.所有上线需求必须走工单系统,口头通知视为无效. 3.在对大表做表结构变更 ...

  4. SQL Server数据库设计规范

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...

  5. SQL Server 数据库设计规范

    数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...

  6. MySql设计规范及SQL索引优化【呕心之作】

    数据库及表结构基本设计规范 1. 所有表必须使用Innodb存储引擎 没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5. ...

  7. 高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及 ...

  8. 关于Schema设计规范及SQL使用建议

    1.所有的InnoDB表都设计一个无业务用途的自增列做主键,对于绝大多数场景都是如此,真正纯只读用InnoDB表的并不多,真如此的话还不如用TokuDB来得划算: 2.字段长度满足需求前提下,尽可能选 ...

  9. 解析大型.NET ERP系统 20条数据库设计规范

    数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到.当系统越来越庞大,严格控制数据库的设计人员,并且有一份规范书供执行参考.在程序框架中,也有一份强制性的约定,当不遵守规范时报错 ...

随机推荐

  1. c# 抓取和解析网页,并将table数据保存到datatable中(其他格式也可以,自己去修改)

    使用HtmlAgilityPack 基础请参考这篇博客:https://www.cnblogs.com/fishyues/p/10232822.html 下面是根据抓取的页面string 来解析并保存 ...

  2. c语言版本的coroutine

    #include <stdio.h> int function(void) { ; switch (state) { : goto LABEL0; : goto LABEL1; } LAB ...

  3. python+appium 实现qq聊天的消息,滑动删除聊天消息

    有人问我,appium怎么去删除qq聊天的, 当时想到的是滑动, 可是具体的大概有个思路,于是乎,就想自己来实现下, 打开模拟器,开发者选项,找到显示坐标的 然后去打开qq获取要删除的消息的坐标后, ...

  4. Linux入门基础(二):Linux磁盘及文件管理系统

    磁盘管理 fdisk分区工具 只支持MBR分区 fdisk命令只有root用户能用 fdisk -l 列出所有安装磁盘及分区信息 fdisk /dev/sda (操作磁盘,按m可列出帮助界面,常用的操 ...

  5. 本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效

    一般是在本地调试cookie,无论使用jquery cookie插件还是js原生态cookie方法,在谷歌浏览器chrome中都不生效,这是什么原因? 原因是: chrome不支持js在本地操作coo ...

  6. docker私服搭建nexus3

    docker私服搭建有官方的registry镜像,也有改版后的NexusOss3.x,因为maven的原因搭建了nexus,所以一并将docker私服也搭建到nexus上. nexus的安装过程就单独 ...

  7. dstat 性能测试工具常用选项

    dstat常用的选项有: -c     显示cpu使用情况 -d     显示磁盘使用情况 -g,     显示页面数据 -i      启用中断数据 -l      平均负载统计(1分钟,5分钟,1 ...

  8. 比较语义分割的几种结构:FCN,UNET,SegNet,PSPNet和Deeplab

    简介 语义分割:给图像的每个像素点标注类别.通常认为这个类别与邻近像素类别有关,同时也和这个像素点归属的整体类别有关.利用图像分类的网络结构,可以利用不同层次的特征向量来满足判定需求.现有算法的主要区 ...

  9. FileZilla-FTP连接失败

    状态: 已登录状态: 读取“/”的目录列表...命令: CWD /响应: 250 CWD successful. "/" is current directory.命令: TYPE ...

  10. python os.walk详解

    os模块大全详情 os.walkos.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks ...