数据库文档命名规范V10.docx

上传人:b****5 文档编号:6243696 上传时间:2023-01-04 格式:DOCX 页数:18 大小:29.83KB
下载 相关 举报
数据库文档命名规范V10.docx_第1页
第1页 / 共18页
数据库文档命名规范V10.docx_第2页
第2页 / 共18页
数据库文档命名规范V10.docx_第3页
第3页 / 共18页
数据库文档命名规范V10.docx_第4页
第4页 / 共18页
数据库文档命名规范V10.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数据库文档命名规范V10.docx

《数据库文档命名规范V10.docx》由会员分享,可在线阅读,更多相关《数据库文档命名规范V10.docx(18页珍藏版)》请在冰豆网上搜索。

数据库文档命名规范V10.docx

数据库文档命名规范V10

 

数据库设计

 

SqlServer数据库对象命名规范

DatabaseObjectsNamingGuidelines

 

V1.0

 

2011.07.07

1相关的设计规范3

1.1采用有意义的字段名3

1.2遵守3NF标准3NF规定:

3

1.3小心保留词3

1.4保持字段名和类型的一致性3

2基本命名规则3

2.1数据库(Database)的命名4

2.2表(Table)的定义4

2.3字段命名规范:

5

2.3.1前缀数据类型举例5

2.3.2数据类型6

2.4触发器命名规范11

2.5存储过程命名规范11

2.6存储过程中的参数及变量命名规范12

2.7用户定义函数命名规范12

2.8命名中其他注意事项12

2.9SQL语句的编写规范12

2.10Rule12

2.11主键12

2.12外键12

2.13索引12

2.14Default13

2.15Check约束13

2.16unique约束13

3编程结构和描述13

3.1注释13

3.2函数注释:

13

3.3条件执行语句if…else14

3.4重复执行while和跳转语句goto14

3.5书写格式14

3.6字体15

4触发器编程规范15

4.1范例15

1相关的设计规范

1.1采用有意义的字段名

尽可能地把字段描述的清楚些。

当然,也别做过头了,比如:

CustomerShippingAddressStreetLine1虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。

每个单词的首个字母要求用大写!

!

!

不要用下划线来连接每个单词.类型

1.2遵守3NF标准3NF规定:

A.表内的每一个值都只能被表达一次。

B.表内的每一行都应该被唯一的标识(有唯一键)。

C.表内不应该存储依赖于其他键的非键信息。

1.3小心保留词

要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC连接程序里有个表,其中就用了DESC作为说明字段名。

后果可想而知!

DESC是DESCENDING缩写后的保留词。

表里的一个SELECT*语句倒是能用,但我得到的却是一大堆毫无用处的信息。

1.4保持字段名和类型的一致性

在命名字段并为其指定数据类型的时候一定要保证一致性。

假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。

假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。

记住,你干完自己的活了,其他人还要用你的数据库呢。

2基本命名规则

在这里,我提出如下数据库设计的建议:

1)如果要写代码来确保表中的行都是唯一的,就为表添加一个主键。

2)如果要写代码来确保表中的一个单独的列是唯一的,就为表添加一个约束。

3)如果要写代码确定表中的列的取值只能属于某个范围,就添加一个Check约束。

4)如果要写代码来连接父-子表,就创建一个关系。

5)如果要写代码来维护“一旦父表中的一行发生变化,连带变更子表中的相关行”,就启用级联删除和更新。

6)如果要调用大量的Join来进行一个查询,就创建一个视图。

7)如果要逐条的写数据库操作的语句来完成一个业务规则,就使用存储过程。

NOTE:

这里我没有提到触发器,实践证明触发器会使数据库迅速变得过于复杂,更重要的是

触发器难以调试,如果不小心建了个连环触发器,就更让人头疼了,所以我更倾向于根本就不使用触发器。

表1.基本数据库对象命名

数据库对象

前缀

举例

表(Table)

tb

tbStudent

字段(Column)

Title

默认值(default)

df_

df_default

视图(View)

vw

vwActivity

存储过程(Storedprocedure)

pr

prDelOrder

触发器(Trigger)

tr

trOrder_D

索引(Index)

ix_

ix_CustomerID

主键(Primarykey)

pk_

pk_Admin

外键(Foreignkey)

fk_

fk_Order_OrderType

Check约束(CheckConstraint)

ck_

ck_TableColumn

Unique约束

uq_

uq_TableColumn

用户定义数据类型(User-defineddatatype)

udt

udtPhone

用户定义函数(User-definedfunction)

fn

fnDueDate

2.1数据库(Database)的命名

数据库名称=数据库内容标识(首字大写)

粮食局项目数据库命名规定:

DB_单位编码(单位编码由单位编码表描述)

2.2表(Table)的定义

命名应尽量反映存储的数据内容。

表名前缀:

以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识

表名称=表名前缀(tb)+表内容标识(首字大写)

如Employee相关联的一系的表以tb作为前缀,

即有表名:

tbHistory,tbContact,tbBusiness

粮食局项目数据表命名规定:

tb(前缀)+表名前两个字的汉语全拼(首字大写,如果遇到前两个字重复的第三个字也全拼)后面的所有字取生母(首字大写)

多对多关系中连接表的命名规定:

将两个表的表名合并(如果表名比较长可做简化)+Relation(后缀)

2.3字段命名规范:

字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。

字段名称=字段类型前缀(全小写)+字段内容标识(首字大写)

2.3.1前缀数据类型举例

前缀

数据类型

举例

bigInt

Binary

bit

Bit

chr

Char

dtm

Datetime

dec

Decimal

flt

Float

img

Image

int

Int

mny

Money

Nchar

ntx

Ntext

num

Numeric

nvr

Nvarchar,Nvarchar(MAX)

rel

Real

SmallDatatime

SmallInt

SmallMoney

Sql_variant

txt

Text

Timestamp

tin

TinyInt

Uniqueidentifier

Varbinary(50)

Varbinary(MAX)

var

Varchar(50),Varchar(MAX)

Xml

以下为SQLSERVER7.0以上版本的字段类型说明。

1)bit:

0或1的整型数字

2)int:

从-2^31(-2,147,483,648)到2^31(2,147,483,647)的整型数字

3)smallint:

从-2^15(-32,768)到2^15(32,767)的整型数字

4)tinyint:

从0到255的整型数字

5)decimal:

从-10^38到10^38-1的定精度与有效位数的数字

6)numeric:

decimal的同义词

7)money:

从-2^63(-922,337,203,685,477.5808)到2^63-1(922,337,203,685,477.5807)的货币数据,最小货币单位千分之十

8)smallmoney:

从-214,748.3648到214,748.3647的货币数据,最小货币单位千分之十

9)float:

从-1.79E+308到1.79E+308可变精度的数字

10)real:

从-3.04E+38到3.04E+38可变精度的数字

11)datetime:

从1753年1月1日到9999年12日31的日期和时间数据,最小时间单位为百分之三秒或3.33毫秒

12)smalldatetime:

从1900年1月1日到2079年6月6日的日期和时间数据,最小时间单位为分钟

13)timestamp:

时间戳,一个数据库宽度的唯一数字

14)uniqueidentifier:

全球唯一标识符GUID

15)char:

定长非Unicode的字符型数据,最大长度为8000

16)varchar:

变长非Unicode的字符型数据,最大长度为8000

17)text:

变长非Unicode的字符型数据,最大长度为2^31-1(2G)

18)nchar:

定长Unicode的字符型数据,最大长度为8000

19)nvarchar:

变长Unicode的字符型数据,最大长度为8000

20)ntext:

变长Unicode的字符型数据,最大长度为2^31-1(2G)

21)binary:

定长二进制数据,最大长度为8000

22)varbinary:

变长二进制数据,最大长度为8000

23)image:

变长二进制数据,最大长度为2^31-1(2G)

2.3.2数据类型

整数数据类型      INT或INTEGER SMALLINT TINYINT BIGINT

浮点数据类型      REAL FLOAT DECIMAL NUMERIC

二进制数据类型     BINARY VARBINARY

逻辑数据类型      BIT

字符数据类型      CHAR NCHAR VARCHAR NVARCHAR

文本和图形数据类型   TEXT NTEXT IMAGE

日期和时间数据类型   DATETIME SMALLDATETIME

货币数据类型      MONEY SMALLMONEY

特定数据类型      TIMESTAMP UNIQUEIDENTIFIER

用户自定义数据类型   SYSNAME

新数据类型       SQL_VARIANT TABLE

  其中BIGINTSQL_VARIANT和TABLE是SQLServer2000中新增加的3种数据类型下面分类讲述各种数据类型

2.3.2.1整数数据类型

整数数据类型是最常用的数据类型之一

1)INTINTEGER

INT或INTEGER数据类型存储从-231-2147483648到231-12147483647之间的所有正负整数每个INT类型的数据按4个字节存储其中1位表示整数值的正负号其它31位表示整数值的长度和大小

2)SMALLINT

SMALLINT数据类型存储从-215-32768到215-132767之间的所有正负整数每个MALLINT类型的数据占用2个字节的存储空间其中1位表示整数值的正负号其它15位表示整数值的长度和大小

3)TINYINT

TINYINT数据类型存储从0到255之间的所有正整数每个TINYINT类型的数据占用1个字节的存储空间

4)BIGINT

BIGINT数据类型存储从-2^63-9223372036854775807到2^63-19223372036854775807之间的所有正负整数每个BIGINT类型的数据占用8个字节的存储空间

2.3.2.2浮点数据类型

浮点数据类型用于存储十进制小数浮点数值的数据在SQLServer中采用上舍入Roundup或称为只入不舍方式进行存储所谓上舍入是指当且仅当要舍入的数是一个非零数时对其保留数字部分的最低有效位上的数值加1并进行必要的进位若一个数是上舍入数其绝对值不会减少如对3.14159265358979分别进行2位和12位舍入结果为3.15和3.141592653590

1)REAL数据类型

REAL数据类型可精确到第7位小数其范围为从-3.40E-38到3.40E+38每个REAL类型的数据占用4个字节的存储空间

2)FLOAT

FLOAT数据类型可精确到第15位小数其范围为从-1.79E-308到1.79E+308每个FLOAT类型的数据占用8个字节的存储空间

FLOAT数据类型可写为FLOAT[n]的形式n指定FLOAT数据的精度n为1到15之间的整数值当n取1到7时实际上是定义了一个REAL类型的数据系统用4个字节存储它当n取8到15时系统认为其是FLOAT类型用8个字节存储它

3)DECIMAL

DECIMAL数据类型可以提供小数所需要的实际存储空间但也有一定的限制您可以用2到17个字节来存储从-1038-1到1038-1之间的数值可将其写为DECIMAL[p[s]]的形式p和s确定了精确的比例和数位其中p表示可供存储的值的总位数不包括小数点缺省值为18s表示小数点后的位数缺省值为0例如decimal155表示共有15位数其中整数10位小数5位表4-3列出了各精确度所需的字节数之间的关系表DECIMAL数据类型的精度与字节数

精度                字节数

1~2                 2

3~4                 3

5~7                 4

8~9                 5

10~12                6

13~14                7

15~16                8

17~19                9

20~21                10

22~24                11

25~26                12

27~28                13

29~31                14

32~33                15

34~36                16

37~38                17

4)NUMERIC

NUMERIC数据类型与DECIMAL数据类型完全相同

SQLServer?

?

为了和前端开发工具配合其所支持的数据精度默认最大为28位但可以通过使用命令来执行sqlservr.exe程序以启动SQLServer可改变默认精度命令语法如下SQLSERVR[/Dmaster_device_path][/Pprecisim_level]

例4-4用最大数据精度38启动SQLServer

sqlservr/dc:

\Mssql2000\data\master.dat/p38

/*在使用了/P参数后如果其后没有指定具体的精度数值则默认为38位/*

2.3.2.3二进制数据类型

1)BINARY

BINARY数据类型用于存储二进制数据其定义形式为BINARYnn表示数据的长度取值为1到8000在使用时必须指定BINARY类型数据的大小至少应为1个字节BINARY类型数据占用n+4个字节的存储空间在输入数据时必须在数据前加上字符0X作为二进制标识如要输入abc则应输入0xabc若输入的数据过长将会截掉其超出部分若输入的数据位数为奇数则会在起始符号0X后添加一个0,如上述的0xabc会被系统自动变为0x0abc

2)VARBINARY

VARBINARY数据类型的定义形式为VARBINARYn它与BINARY类型相似n的取值也为1到8000若输入的数据过长将会截掉其超出部分不同的是VARBINARY数据类型具有变动长度的特性因为VARBINARY数据类型的存储长度为实际数值长度+4个字节当BINARY数据类型允许NULL值时将被视为VARBINARY数据类型一般情况下由于BINARY数据类型长度固定因此它比VARBINARY类型的处理速度快

2.3.2.4逻辑数据类型

BIT  BIT数据类型占用1个字节的存储空间其值为0或1如果输入0或1以外的值将被视为1BIT类型不能定义为NULL值所谓NULL值是指空值或无意义的值

2.3.2.5字符数据类型

字符数据类型是使用最多的数据类型它可以用来存储各种字母数字符号特殊符号一般情况下使用字符类型数据时须在其前后加上单引号’或双引号”

1)CHAR

CHAR数据类型的定义形式为CHAR[n]以CHAR类型存储的每个字符和符号占一个字节的存储空间n表示所有字符所占的存储空间n的取值为1到8000即可容纳8000个ANSI字符若不指定n值则系统默认值为1若输入数据的字符数小于n则系统自动在其后添加空格来填满设定好的空间若输入的数据过长将会截掉其超出部分

2)NCHAR

NCHAR数据类型的定义形式为NCHAR[n]它与CHAR类型相似不同的是NCHAR数据类型n的取值为1到4000因为NCHAR类型采用UNICODE标准字符集CharacterSetUNICODE标准规定每个字符占用两个字节的存储空间所以它比非UNICODE标准的数据类型多占用一倍的存储空间使用UNICODE标准的好处是因其使用两个字节做存储单位其一个存储单位的容纳量就大大增加了可以将全世界的语言文字都囊括在内在一个数据列中就可以同时出现中文英文法文德文等而不会出现编码冲突

3)VARCHAR

VARCHAR数据类型的定义形式为VARCHAR[n]它与CHAR类型相似n的取值也为1到8000若输入的数据过长将会截掉其超出部分不同的是VARCHAR数据类型具有变动长度的特性因为VARCHAR数据类型的存储长度为实际数值长度若输入数据的字符数小于n则系统不会在其后添加空格来填满设定好的空间,一般情况下由于CHAR数据类型长度固定因此它比VARCHAR类型的处理速度快

4)NVARCHAR

NVARCHAR数据类型的定义形式为NVARCHAR[n]它与VARCHAR类型相似不同的是NVARCHAR数据类型采用UNICODE标准字符集CharacterSetn的取值为1到4000

2.3.2.6文本和图形数据类型

这类数据类型用于存储大量的字符或二进制数据

1)TEXT

TEXT数据类型用于存储大量文本数据其容量理论上为1到231-12147483647个字节在实际应用时需要视硬盘的存储空间而定,SQLServer2000以前的版本中数据库中一个TEXT对象存储的实际上是一个指针,它指向一个个以8KB8192个字节为单位的数据页DataPage这些数据页是动态增加并被逻辑链接起来的在SQLServer2000中则将TEXT和IMAGE类型的数据直接存放到表的数据行中而不是存放到不同的数据页中这就减少了用于存储TEXT和IMA-GE类型的空间并相应减少了磁盘处理这类数据的I/O数量

2)NTEXT

NTEXT数据类型与TEXT类型相似不同的是NTEXT类型采用UNICODE标准字符集CharacterSet因此其理论容量为230-11073741823个字节

3)IMAGE

IMAGE数据类型用于存储大量的二进制数据BinaryData其理论容量为231-12147483647个字节其存储数据的模式与TEXT数据类型相同它通常用来存储图形等OLEObjectLinkingandEmbedding对象连接和嵌入对象在输入数据时同BINARY数据类型一样必须在数据前加上字符0X作为二进制标识

2.3.2.7日期和时间数据类型

1)DATETIME

DATETIME数据类型用于存储日期和时间的结合体它可以存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的所有日期和时间其精确度可达三百分之一秒即3.33毫秒DATETIME数据类型所占用的存储空间为8个字节其中前4个字节用于存储1900年1月1日以前或以后的天数数值分正负正数表示在此日期之后的日期负数表示在此日期之前的日期后4个字节用于存储从此日零时起所指定的时间经过的毫秒数如果在输入数据时省略了时间部分则系统将12:

00:

00:

000AM作为时间缺省值如果省略了日期部分则系统将1900年1月1日作为日期缺省值

2)SMALLDATETIME

SMALLDATETIME数据类型与DATETIME数据类型相似但其日期时间范围较小,为从1900年1月1日到2079年6月6日精度较低只能精确到分钟其分钟个位上为根据秒数四舍五入的值即以30秒为界四舍五入如DATETIME时间为14:

38:

30.283时SMALLDATETIME认为是14:

39:

00SMALLDATETIME数据类型使用4个字节存储数据其中前2个字节存储从基础日期1900年1月1日以来的天数后两个字节存储,此日零时起所指定的时间经过的分钟数,下面介绍日期和时间的输入格式:

日期输入格式:

日期的输入格式很多大致可分为三类

第一类:

英文+数字格式

此类格式中月份可用英文全名或缩写且不区分大小写年和月日之间可不用逗号年份可为4位或2位当其为两位时若值小于50则视为20xx年若大于或等于50则视为19xx年若日部分省略则视为当月的1号以下格式均为正确的日期格式

June212000Oct11999January20002000February

2000May120001Sep99JuneJuly00

第二类:

数字+分隔符格式

允许把斜杠/连接符-和小数点.作为用数字表示的年月日之间的分隔符如

YMD2000/6/222000-6-222000.6.22

MDY3/5/20003-5-20003.5.2000

DMY31/12/199931-12-199931.12.2000

第三类:

纯数字格式

纯数字格式是以连续的4位6位或8位数字来表示日期如果输入的是6位或8位数字系统将按年月日来识别即YMD格式并且月和日都是用两位数字来表示,如果输入的数字是4位数系统认为这4位数代表年份其月份和日缺省为此年度的1月1日如200006012000年6月1日9912121999年12月12日19981998年

时间输入格式:

在输入时间时必须按小时分钟秒毫秒的顺序来输入在其间用冒号隔开但可将毫秒部分用小数点.分隔其后第一位数字代表十分之一秒第二位数字代表百分之一秒第三位数字代表千分之一秒当使用12小时制时用AMam和PMpm分别指定时间是午前或午后若不指定系统默认为AMAM与PM均不区分大小写如:

3:

5:

7.2pm下午3时5分7秒200毫秒

10:

23:

5.12

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1