数据库设计(6)_命名及编码规范_SQL SERVER
一、综述
命名和编码过程中,定义有意义的名称,以易于理解、方便书写为原则。
(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)避免字段名中包含表名,如
相关文档:
Case具有两种格式。简单Case函数和Case搜索函数。
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
  ......
/*******************************************************/
/* 功能:SQL Server 2005索引碎片整理 */
/* 逻辑碎 ......
本周
select * from tb where datediff(week , 时间字段 ,getdate()) = 0
上周
select * from tb where datediff(week , 时间字段 ,getdate()) = 1
下周
select * from tb where datediff(week , 时间字段 ,getdate()) = -1
------------------------------------------------------------------------------------ ......
--------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-04-23 20:33:15
-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul  ......
以下是第一篇:
/*--比较两个数据库的表结构差异
--*/
/*--调用示例
exec p_comparestructure 'xzkh_model','xzkh_new'
--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_comparestructure]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_comparestructure ......