sql 设计规范
设计规范:
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 设计规范的更多相关文章
- MySQL数据库规范 (设计规范+设计规范+操作规范)
I 文档定义 1.1 编写目的 为了在软件生命周期内规范数据库相关的需求分析.设计.开发.测试.运维工作,便于不同团队之间的沟通协调,以及在相关规范上达成共识,提升相关环节的工作效率和系统的可维护性. ...
- DBA的规范
DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆. 2.所有上线需求必须走工单系统,口头通知视为无效. 3.在对大表做表 ...
- DBA的40条军规
DBA操作规范 1.涉及业务上的修改/删除数据,在得到业务方.CTO的邮件批准后方可执行,执行前提前做好备份,必要时可逆. 2.所有上线需求必须走工单系统,口头通知视为无效. 3.在对大表做表结构变更 ...
- SQL Server数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- SQL Server 数据库设计规范
数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的 ...
- MySql设计规范及SQL索引优化【呕心之作】
数据库及表结构基本设计规范 1. 所有表必须使用Innodb存储引擎 没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5. ...
- 高性能可扩展mysql 笔记(一)数据库表、索引、SQL语句设计规范
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 项目说明:该笔记的背景为电商平台项目,电商项目由于其高并发.多线程.高耗能等特性,在众多的项目类型中涉及 ...
- 关于Schema设计规范及SQL使用建议
1.所有的InnoDB表都设计一个无业务用途的自增列做主键,对于绝大多数场景都是如此,真正纯只读用InnoDB表的并不多,真如此的话还不如用TokuDB来得划算: 2.字段长度满足需求前提下,尽可能选 ...
- 解析大型.NET ERP系统 20条数据库设计规范
数据库设计规范是个技术含量相对低的话题,只需要对标准和规范的坚持即可做到.当系统越来越庞大,严格控制数据库的设计人员,并且有一份规范书供执行参考.在程序框架中,也有一份强制性的约定,当不遵守规范时报错 ...
随机推荐
- 9-[CSS]-字体、文本、背景图片
1.字体相关CSS属性介绍 p{ width: 300px; height: 60px; /* 等价于 font-size: 14px; line-height: 30px; font-family: ...
- Deep Learning 资料总结
http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/ : 理解神经网络 ELU:
- code first 创建数据库,add-migration update-database
第一步: 第二步:
- 11.7 NOIP总复习总结
好像要1A模板题.完败 下面主要是一波SB错误总结 最小生成树(忘了sort(QwQ)) // It is made by XZZ // Fei Fan Ya Xi Lie~~~ #include&l ...
- avascript小技巧
avascript小技巧 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture() ...
- 分享一个DataTable转List强类型的类库
类库扩展自Datatable,可以直接用Datatable.ToList<T>()进行转换.为了方便把DataReader装入Datatable,开扩展了一个LoadForReader(t ...
- Qt-网易云音乐界面实现-1 窗口隐藏拖拽移动,自定义标题栏
最近也换了公司,也换了新的工作,工资也象征性的涨了一点点,但是最近心里还是慌慌,不知道为什么,没有那种踏实感,感觉自己随时可以被抛弃的感觉.感觉自己在荒废时间,也感觉自己在浪费生命. 为了让自己在被抛 ...
- OpenGL(1)-环境搭建
写在前面 工作几年,开始沉心做技术,对自己的知识进行梳理. OpenGL是由khronos组织制定并维护的规范,并不是API. OpenGL在3.2之前采用的是立即渲染模式(固定渲染管线),3.2之后 ...
- springmvc使用ajax进行数据交互时,session失效问题(@ResponseBody与session能否同时使用?)
今天做博客demo的时候遇到了这样的问题:当我用ajax进行资源请求时,需要顺便将账户信息存入session.但是后来发现有@Responsebody标签时,直接用HttpSession存数据时,根本 ...
- vue 组件-父组件传值给子组件
父组件通过属性,传值给子组件,子组件通过,props数组里的名称来接受父组件传过来的值. HTML部分: <div id="app"> <tmp1 :parent ...