数据库使用规范

1.数据库/表 名第一位为数字的话,需要加 "[]" ;为了规范,不要使用数字开头

2.如果没有业务列组合当主键,可以生成自增id当主键

  a.主键不是必须的,但是主键是必要的。首先,确保表的完整性(如数据的唯一性)当插入两行一模一样的数据时,没有主键则不可区分。其次,提升效率(没有主键时,是按照输入顺序进行插入的)

  b.有些数据库里主键时必须要有的。

  c 业务列作为主键 / GUID主键 / 时间+机器号+自增ID主键

3.注意数据库字段,表名的长度限制。Oracle是30个字符

4.外键必须是另一个表的主键

5.dbo:数据库名.架构名.表名。05版本前为 数据库名.用户名.表名

[email protected]自定义变量 @@系统变量  Cursor游标

7.使用top/where等控制sql执行返回的结果集合

8.注意数据库的编码规则

9.EXEC执行存储过程

10.游标:Cursor c is select .. from ..

11.游标和临时表对比:内存/硬盘,数据量两方面考虑

12.不使用goto 的原因:可以使用if else/while代替,提升代码质量和流程

13.SET NOCOUNT ON :不返回 ..行受到影响

14.业务逻辑是否封装到存储过程里:

  a.在开发过程中为什么需要写存储过程

  b.是:执行速度快,安全性(屏蔽开发人员权限)

  c.否:互联网基本采用这种,银行/电信等采用上条。

i.业务逻辑交给程序处理,减少数据库资源消耗

ii.不利于分层规范和维护

iii.迁移方便(屏蔽具体sql的差异,如sqlserver和mysql)

15.最好有return信息。没有的话可添加 return 1

16.Union all ,from  .. where等等聚合写入/读出

17.索引:最实用的方法就是看执行计划找瓶颈,根据实际情况优化设计

  a.参考文章  SQL索引一步到位

  b.聚集索引/非聚集索引:是否是物理排序

  c.非聚集索引行定位器是

i.指向行的指针(文件标识符+页码+行序号生成)

ii.该行的聚集索引关键字的值。

  d.SQL SERVER 采用 B- 树结构,非聚集索引是一个新实体(类似术语表)

  e.原则上where字句上出现的列都需要创建索引:不然还是会到表中查询

  f.避免在WHERE条件中,在索引列上进行计算或使用函数:这将导致索引不被使用

  g.保证索引排序和Order By 字句顺序保持一致

  h.数据重复列高的字段不要创建索引:没有意义

  i.text, varchar(max)不创建索引

  j.外键和用于做表连接的字段需要做单独的索引:如果外键列缺少索引,从关联子表的查询就只能对子表选择全表扫描

  k.经常更改的列不创建索引:维护成本太高

使用规范

1.采用Pascal命名

2.ConstDict、ConstDictValues作为系统保留字段

3.每个实体表都必须包含 CreateDate、CreateBy、ModifyDate、ModifyBy四个字段

4.脚本头规范:参考别人写的就行了。

  a.作者 / 创建时间 / 修改人 / 修改时间 / 对应系统模块 / 描述

  b.参数注释

  c.TRANSACTION事务注释

5.存储过程规范:

  a.过程名称,作者,功能说明,创建日期,维护记录,使用案例

6.脚本命名:编号_数据库名_脚本功能

  a.脚本数据库存在分库情况时,DBA会将其全库执行,不需要开发处理

7.存储过程命名:架构名.模块名_功能语义

8.依赖条件使用 By+条件

命名法:

匈牙利命名法:

1.每个变量名前加上若干表示数据类型的字符。

2.变量名=属性+类型+对象描述

驼峰命名法:大小写混合的对象描述,如userName

Pascal命名:首字母大写的驼峰命名

时间: 2024-12-26 19:23:21

数据库使用规范的相关文章

8.4 数据库审核规范

8.4 数据库审核规范 8.4.1 数据库审核规范 在数据库级别创建审核规范,可以实现数据库级别的审核.具有 ALTER ANY DATABASE AUDIT 权限的用户可以创建数据库审核规范并将其绑定到任何审核.创建数据库审核规范后,具有 CONTROL SERVER 或 ALTER ANY DATABASE AUDIT 权限的主体或 sysadmin 帐户即可查看该规范. 数据库级别审核的操作类型可以是操作组,也可以是单个的操作(SELECT.UPDATE.INSERT.DELETE.EXE

数据库开发规范

数据库开发规范 数据库开发规范定义:开发规范是针对内部开发的一系列建议或规则. 开发规范本身也包含几部分:基本命名和约束规范,字段设计规范,索引规范,使用规范. 规范存在意义 保证线上数据库schema规范 减少出问题概率 方便自动化管理 规范需要长期坚持,对开发和DBA是一个双赢的事情 想想没有开发规范,有的开发写出各种全表扫描的SQL语句或者各种奇葩SQL语句,我们之前就看过开发写的SQL 可以打印出好几页纸.这种造成业务本身不稳定,也会让DBA天天忙于各种救火. 基本命名和约束规范 表字符

数据库命名规范

1.设计原则 1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能.扩展性和数据完整性方面达到了最好平衡.简单来说,遵守3NF 标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解.表之间的关系通过外键相连接.它具有以下特点:有一组表专门存放通过键连接起来的关联数据. 举例:某个存放客户及其有关定单的3NF 数据

数据库命名规范(转载)

变量(对象)命名 一.数据库: 1. 基本命名规则 表 1. 基本数据库对象命名 数据库对象                                      前缀表 (Table)  ——>>  tbl_ 字段(Column)   ——>>  无 视图 (View)  ——>>  viw_ 存储过程 (Stored procedure)     ——>>  prd_ 触发器(Trigger)                       ——>

SQL Server数据库命名规范

良好的命名习惯是一种美德,下面是个人整理的数据库命名规范: 数据库命名规范: 1. 数据库名: 1.1)用产品或项目的名字命名: 1.2)Pascal Case,如AdventureWork; 1.3)避免使用特殊字符,如数字,下划线,空格之类: 1.4)避免使用缩写 2. 表名 2.1)使用复数,Pascal Case,而复数只加在最后一个单词上如:Products,Users,UserRoles 2.2)避免使用特殊字符,如数字,下划线,空格之类: 2.3)避免使用缩写 3. 列名 3.1)

必看的数据库使用规范

导读:? 关于MySQL数据库规范,相信大家多少看过一些文档.本篇文章给大家详细分类总结了数据库相关规范,从库表命名设计规范讲起,到索引设计规范,后面又给出SQL编写方面的建议.相信这些规范适用于大多数公司,也希望大家都能按照规范来使用我们的数据库,这样我们的数据库才能发挥出更高的性能. 关于库: [强制]库的名称必须控制在32个字符以内,英文一律小写. [强制]库的名称格式:业务系统名称_子系统名. [强制]库名只能使用英文字母,数字,下划线,并以英文字母开头. [强制]创建数据库时必须显式指

mysql数据库开发规范

对规范的遵守可用二八原则,不要教条.为满足实际需求 可忽视部分规范. 1.索引规范 *目标 |--利用最小的索引成本找到需要的行记录 *原则 |--做前缀匹配 |--选择区分度高的列做前缀索引列 |--尽量使用重复索引 与where条件匹配 |--避免重复索引 |--索引列尽量包含 group by.order by所涉及的列 `--查询结果比较大时 考虑索引覆盖 2.SQL规范 *原则 |--避免大事务 减少等待和竞争 |--不要使用* 使用具体列名 |--遇到分页查询 使用延迟关联解决(如果

数据库定义规范(可以借鉴,不是硬性标准)

 一:表名定义规范: (1)数据库表的命名以是名词的复数形式且都为小写,如cities, categories, friends等等 这一条不是硬性规定,可以看个人习惯,统一就好. (2)如果表名由几个单词组成,则单词间用下划线("_")分割,如subscribed_pois,poi_categories等  (3)表名尽量用全名  (4)表名限制在30个字符内.当表的全名超过30字符时,可用缩写来减少表名的长度,如description --> desc:information

Mysql 数据库开发规范

参考原文 详细内容看上文,提几点需要记住的要点. 库表基础规范 1.注释 每个表要添加注释,对 status 型需指明主要值的含义,如"0-离线,1-在线" 2.表的字段数量 单表字段数上限30左右,再多的话考虑垂直分表,一是冷热数据分离,二是大字段分离,三是常在一起做条件和返回列的不分离. 表字段控制少而精,可以提高IO效率,内存缓存更多有效数据,从而提高响应速度和并发能力,后续 alter table 也更快. 3.表的数据量控制在5000w以内 表字段数量不要超过20个,如果有需