SQLServer数据库设计命名规范
数据库命名规范
数据库命名规范数据库设计是指建立数据库的过程,其中包括设计数据结构,编写完整的SQL代码以操作数据等等。
其中,数据库对象命名规范尤其重要。
这可以清晰地表明数据库结构,有助于更好地管理数据库,理顺连接,并有助于解决软件问题。
SQL Server中的命名规范1. SQL Server命名规范要求使用有意义的名称,可以允许最多128个字符,包括字母(a-z或A-Z),数字(0-9)和undescore(_)。
大多数对象必须以字母开头,不能用保留字(比如,where)作为名称。
2.操作系统(OS)对象和数据库对象的名称必须隔离,并且必须使用有意义的前缀和后缀,以便区分。
例如,OS用户应该以OS_前缀作为前缀,数据库用户应以DB_前缀作为前缀。
3.表格、列和字段的命名规范应该简洁,要符合命名规则,例如,表格名称由一到多个单词组成,它们应该按照某种正式的结构,以便同时表达复合含义。
4.避免使用缩写。
当可能的时候,应该使用完整的单词,以帮助他人理解数据库结构。
5.在数据库中,每个SQL对象都必须有唯一的名称,以避免和其他名称冲突。
6.最后,应尝试使用动态名称,以进一步简化数据库设计。
这样可以减少维护成本和开发时间。
Oracle数据库命名规范1.Oracle命名规范要求使用有意义的名称,可以是128个字符的字母(a-z或A-Z),数字(0-9)和undescore(_),但不能以数字开头。
同时,必须遵守Oracle的大小写规则。
2.Oracle数据库的对象名称中的大写字母要慎重使用,可以使用小写字母,以加强数据库设计的可读性。
3.尽量不使用特殊字符,如撇号,连字符,星号等,因为它们可能对SQL查询产生麻烦。
4.避免使用单词的缩写,除非它们非常常见,否则会使他人不明白你的数据库结构。
5.使用前缀和后缀分离不同的数据库对象。
例如,表格前缀可以为T_,序列前缀可以为S_,触发器前缀可以为TRG_,字段前缀可以为F_,等等。
sqlserver data base name
SQL Server数据库名称一、介绍SQL Server是微软公司开发的关系型数据库管理系统,广泛应用于企业的数据存储和管理中。
在SQL Server中,数据库名称是非常重要的,它是用来标识和区分不同的数据库的。
在本文中,我们将深入探讨SQL Server数据库名称的相关内容。
二、数据库名称的作用1. 标识性:数据库名称是用来唯一标识一个数据库的重要属性,每个数据库都有一个唯一的名称。
2. 区分性:数据库名称可以帮助我们区分不同的数据库,方便管理和使用。
3. 调用性:通过数据库名称,我们可以在SQL Server中方便地调用和操作对应的数据库。
三、数据库名称的命名规范1. 字符限制:数据库名称由1到128个字符组成,可以使用字母、数字和一些特殊符号,但不允许使用空格。
2. 禁止词汇:数据库名称不允许使用一些保留字和关键字,例如“select”、“insert”等。
3. 大小写敏感:SQL Server默认情况下是不区分大小写的,所以数据库名称的大小写是不敏感的,但建议统一使用小写。
4. 唯一性:数据库名称必须是唯一的,同一个SQL Server实例中不能有相同名称的数据库。
四、常见操作1. 创建数据库:在SQL Server中,我们可以使用CREATE DATABASE语句来创建一个新的数据库,并为其指定一个名称。
2. 修改数据库名称:在某些情况下,我们可能需要修改数据库的名称,可以使用ALTER DATABASE语句实现。
3. 删除数据库:如果某个数据库不再需要,我们可以使用DROP DATABASE语句来删除该数据库及其相关数据。
五、注意事项1. 保持简洁:数据库名称应该简洁明了,不宜过长,方便记忆和使用。
2. 规范命名:建议按照一定的规范来命名数据库,例如使用有意义的英文单词或缩写。
3. 不可轻率修改:修改数据库名称可能会影响到已有的程序和应用,需要谨慎操作。
六、总结数据库名称是SQL Server中一个重要的概念,正确的数据库命名可以方便管理和使用数据库。
SQLServer数据库设计命名规范
SQLServer数据库设计命名规范SQLServer数据库设计规范1 相关的设计规范1.1 采⽤有意义的字段名尽可能地把字段描述的清楚些。
当然,也别做过头了,⽐如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没⼈愿意键⼊这么长的名字,具体尺度就在你的把握中。
每个单词的⾸个字母要求⽤⼤写不要⽤下划线来连接每个单词。
1.2 遵守3NF 标准3NF 规定:A.表内的每⼀个值都只能被表达⼀次。
B.表内的每⼀⾏都应该被唯⼀的标识(有唯⼀键)。
C.表内不应该存储依赖于其他键的⾮键信息。
1.3 ⼩⼼保留词要保证你的字段名没有保留词、数据库系统或者常⽤访问⽅法冲突,⽐如,写的⼀个ODBC 连接程序⾥有个表,其中就⽤了DESC 作为说明字段名。
后果可想⽽知!DESC 是DESCENDING 缩写后的保留词。
表⾥的⼀个SELECT *语句倒是能⽤,但我得到的却是⼀⼤堆毫⽆⽤处的信息。
1.4 保持字段名和类型的⼀致性在命名字段并为其指定数据类型的时候⼀定要保证⼀致性。
假如字段在某个表中叫做“AgreeMentNumber”,你就别在另⼀个表⾥把名字改成“ref1”。
假如数据类型在⼀个表⾥是整数,那在另⼀个表⾥可就别变成字符型了。
记住,你⼲完⾃⼰的活了,其他⼈还要⽤你的数据库呢。
2 命名规则:2.1 数据库(Database)的定义数据库名称 = 数据库内容标识(⾸字⼤写)2.2 表(Table)的定义命名应尽量反映存储的数据内容。
表名前缀:以该表及与该表相关联的⼀系列表的内容⽽得到⼀个代表统⼀的标识表名称 = 表名前缀 + 表内容标识(⾸字⼤写)如ClientInfo相关联的⼀系的表以ci作为前缀,即有表名:ciHistory,ciContact,ciBusiness2.3 字段(Field)的定义字段是数据库中的⽤途最⼴泛的,它的类型⾮常多,所以必须加类型前缀来标⽰它的类型。
sql server 列名命名规则
SQL Server 列名命名规则1. 介绍在使用SQL Server数据库时,对于列名的命名是非常重要的。
良好的列名命名规则可以使数据库的结构清晰、易于理解和维护。
本文将介绍SQL Server列名命名规则,帮助读者了解如何合理地命名列名。
2. 规则和建议在SQL Server中,列名的命名需要遵循一些规则和建议,以下是一些建议和常见规则:2.1 使用描述性的名称为了方便理解,每个列名都应该尽可能使用描述性的名称。
如果某一列存储了用户的尊称信息,可以将该列命名为"UserName",这样可读性更强,不易产生歧义。
2.2 避免使用关键字和保留字在SQL Server中,有一些关键字和保留字是数据库系统保留的,不能作为列名。
在命名列名时需要避免使用这些关键字和保留字,以免发生冲突。
2.3 使用统一的命名规则为了保持数据库结构的统一性,可以约定一套统一的命名规则,并在整个团队或组织中统一执行。
可以约定使用驼峰命名法或下划线分隔法等命名规则。
2.4 使用简单的命名在命名列名时,应尽量避免使用复杂的命名,尽可能简洁明了。
这样不仅能方便理解,还能提高查询和维护效率。
2.5 避免使用特殊字符和空格在列名中应尽量避免使用特殊字符和空格,这样可以减少出错的可能性,也方便在SQL语句中引用。
3. 示例下面通过一个简单的示例来演示如何按照以上规则命名列名:假设我们有一个用户信息表,包括用户ID、用户名、用户芳龄和用户电流新箱等列,那么我们可以按照以下规则来命名列名:- 用户ID:UserId- 用户名:UserName- 用户芳龄:UserAge- 用户电流新箱:UserEm本人l通过以上示例,我们可以看到使用描述性的名称,避免关键字和保留字,使用统一的命名规则,简单明了的命名,避免特殊字符和空格等规则。
4. 总结良好的列名命名规则对于数据库的设计和维护是非常重要的。
在实际开发中,应严格遵循列名命名规则,采用合适的命名规则,使得数据库结构清晰、易于理解和维护。
SQLserver数据库设计及开发规范
SQLserver数据库设计及开发规范LMS项⽬数据库设计及使⽤规范在本项⽬中,数据库的设计和使⽤必须遵循以下原则:1命名原则1.1约定:Pascal Casing命名⽅式:1.每⼀个单词的第⼀个字母⼤写,例如:B ank N ame。
2.常⽤单词缩写三个字母以下字母都⼤写,例如:SP、PG3.常⽤单词缩写三个字母以上第⼀个字母⼤写,例如:Xml1.2表名和字段规则如下:使⽤英⽂单词或词组作为表名,不得使⽤汉语拼⾳,建⽴⼀个中英⽂对照字典。
⽤名词和名词短语作表名不使⽤复数,除⾮与数据库保留字冲突⽤Pascal 命名规则尽量谨慎地使⽤缩写尽量不要和关键字重合不要⽤任何名前缀(例如U,B)数据库对象名称不使⽤下划线正确的命名,例如:UsersOrderProduct1.3存储过程规则如下:命名规则为up_xxx_StoredProcedureName,up表⽰User Procedure,⽤来区分它和系统存储过程,xxx表⽰⼦系统的名称,由三个字母构成,各个⼦系统参见下表,StoredProcedureName 为存储过程含义StoredProcedureName规则如下:⽤动词或动词短语来命名,并带有宾语需要符合⽤Pascal 命名规则。
尽量谨慎地使⽤缩写尽量不要和关键字重合不要⽤任何名前缀(例如U,B)StoredProcedureName内不使⽤下划线当操作依赖条件时,⼀般结尾使⽤By+条件存储过程正确的命名,例如:Up_Usr_InsertUserUp_Usr_SearchUserByUserIDUp_Usr_DeleteUserByUserID1.4视图规则如下:视图的命名采⽤vw ViewName的格式,其中vw前缀表⽰视图,ViewName部分表⽰视图的含义。
ViewName规则如下:⽤名词和名词短语,不使⽤复数⽤Pascal 命名规则尽量谨慎地使⽤缩写尽量不要和关键字重合不要⽤任何名前缀(例如U,B)ViewName中不使⽤下划线视图正确的命名,例如:vwUservwUserOrdervwTranscation视图错误的命名,例如:UserViewvw_Transcation_View2设计规范2.1规范约定遵守数据的设计规范3NF 规定·表内的每⼀个值都只能被表达⼀次。
sql server建表规则
SQL Server建表规则在使用SQL Server进行数据库设计和建表时,遵循一定的规则和标准是非常重要的。
这不仅可以提高数据库的性能和可维护性,还可以减少日后的问题和错误。
本文将介绍SQL Server建表的规则和注意事项,帮助您设计出高质量、高效的数据库表结构。
一、命名规则1.1 表名命名规则在SQL Server中,表名需要具有描述性,能够清晰地表达表所存储的数据内容。
表名应该使用英文,采用下划线或驼峰命名法,避免使用特殊字符或中文命名。
可以使用"order_det本人l"或者"OrderDet本人l"作为表名。
1.2 字段名命名规则字段名也需要具有描述性,能够清晰地说明字段所存储的数据内容。
字段名应该使用英文,采用下划线或驼峰命名法,避免使用特殊字符或中文命名。
可以使用"order_id"或者"OrderId"作为字段名。
1.3 主键命名规则主键字段的命名一般为表名加上“_id”的形式,例如“order_id”。
主键字段名一般需要在字段名前面加上"pk_"前缀或者在字段名后面加上"_pk"后缀,以明确表示该字段为主键。
“pk_order_id”或者“order_id_pk”。
1.4 外键命名规则外键字段的命名一般为所引用表的表名加上“_id”的形式,例如“customer_id”。
外键字段名一般需要在字段名前面加上"fk_"前缀或者在字段名后面加上"_fk"后缀,以明确表示该字段为外键。
“fk_customer_id”或者“customer_id_fk”。
二、字段规则2.1 数据类型选择在选择字段的数据类型时,需要根据存储的数据内容和对数据的操作进行合理的选择。
对于存储整数类型的字段,可以选择int或者bigint;对于存储字符串类型的字段,可以选择nvarchar或者varchar。
SQL Server数据库规范
文档密级:普通文档状态:[] 草案 [√]正式发布 [ ]正在修订目录第1章数据库规范 (4)1.1命名规范 (4)1.1.1 数据库命名 (4)1.1.2 数据表命名 (4)1.1.3 视图命名 (4)1.1.4 存储过程命名 (4)1.1.5 方法命名 (4)1.1.6 字段命名 (4)1.2SQL语句编写规范 (5)1.2.1 编写习惯 (5)1.2.2 注释 (5)1.2.3 缩进 (5)1.2.4 嵌套查询 (6)1.2.5 其他SQL语句 (7)第1章数据库规范1.1命名规范1.1.1数据库命名数据库名称尽量和项目名相同,使用Pascal大小写形式。
1.1.2数据表命名数据表命名使用Pascal大小写形式,在表名前加前缀XX_,表名要用有意义的名称,尽量与程序模块相符,并且名词单词要用单数形式。
比如程序中做的模块为文章新闻功能,则表面为:XX_ArticleNews。
1.1.3视图命名视图的命名与数据表命名方式相同。
1.1.4存储过程命名数据表命名使用Pascal大小写形式,在存储过程名前加前缀XX_[模块名]_,其中模块名是可选的,如果存储过程的功能比较独立,可以只加XX_前缀,XX_LoginXX_Admin_AddModule1.1.5方法命名方法名称前加前缀fn,其他部分用Pascal大小写形式。
1.1.6字段命名字段命名方式用Pascal大小写形式,字段名中不用有下划线。
1.2SQL语句编写规范1.2.1编写习惯●在SQL语句中,关键字要大写,表名、字段等要与其命名相同:SELECT LastName, FirstName FROM Person●在关键字AND、OR、IN、=、<=、>= 等前后要有一个空格:SELECT LastName, FirstName FROM PersonWHERE PersonID = 1 AND LastName='abc'1.2.2注释注释主要是对存储过程、方法已经其中的SQL语句进行注释,注释规范如下:●存储过程注释:-- =============================================-- Author: <Author Name>-- Create date: <Create Date>-- Description: <Description>-- =============================================ALTER PROCEDURE ProcedureName●方法注释:-- =============================================-- Author: <Author Name>-- Create date: <Create Date>-- Description: <Description>-- =============================================ALTER FUNCTION FunctionName●SQL语句中的注释:SQL语句中的注释写到该SQL语句的上一行。
SQL+Server命名规范
SQL Server1.命名协定1.1 数据库命名原则及版本控制1.1.1数据库命名原则数据库命名要遵从以下命名原则:表意性原则:数据库命名本着表意性原则,即命名应尽量反映存储/action/view/column的数据内容。
长名原则:很少使用或者不使用缩写,适用于DB命名之外的任一对象数目最少化原则:数据库对象应该尽量满足数据最小化原则,也就是数据库数目,存储过程,视图等数量最小化。
1.1.2 数据库版本控制当由于多个版本的应用系统同时存在或者是其它特殊原因而使用完成相似的功能的对象存在同时存在时,使用版本控制:版本号在对象名的后面加上[_v1]如:Up_IM_DailyUsageStatsUpdate_v2Up_IM_CustomerGetUsingLast Nam e_v21.2 Server/命名实例的命名基于Domain命名, DOMAIN 的粒度,可分为三级,分别是Server级别,Database级别和表的前缀级别。
此为第一级别。
1.ONLINE PRODUCTION SERVERNEWSQLNEWSQL2EHISSQLWAREHOUSE PRODUCTION SERVERS3SQL01S4SQL01S7SQL01S6SQL011.3 数据库命名数据库命名应当遵从上面所提及到的协定,包括没有特殊的字符,使用文字数据字式字符……..,项目代码命名不应该同样被数据库使用.数据库名字应该唯一以避免冲突等.以Domain来标识, 拆分DATABASE,基于大的逻辑范畴,如operation 范畴以及部门类别,另外:其它与部门相关的DATABASE 可以放到相关的SERVER 下。
数据库数目最少化原则数据设置尽可能MERGER原则peration database AND Dept level Database set up rules拆分DATABASE,基于大的逻辑范畴,如operation 范畴以及部门类别其它与部门相关的DATABASE 可以放到相关的SERVER 下。
SQL Server 设计,命名,编码规范
SQL Server 设计,命名,编码规范SQL Server DatabaseDesign, Code and Development Standards1.更改 (3)2.简介 (3)3.开发环境 (4)3.1数据库模型 (4)3.2 Diagrams (4)3.3版本控制 (4)3.4 源码目录结构 (4)4.物理数据库模型&字典 (5)4.1 物理数据模型 (5)4.2 IDEF1X 方法 (6)4.3 物理数据库数据字典 (6)4.4 性能设计 (6)5.命名协定 (7)5.1 数据库命名原则及版本控制 (7)5.1.1数据库命名原则 (7)5.1.2 数据库版本控制 (7)5.2 Server/命名实例的命名 (7)5.3 数据库命名 (8)5.4 数据库对象—表,视图,列名,约束,规则,默认值 (10)5.5 缩写规范 (11)5.6 列名 (11)5.7 存储过程命名 (13)5.8 游标命名 (13)5.9 触发器命名 (14)5.10 索引命名 (14)5.11 主键和外键命名 (14)5.12 Check约束命名 (15)5.13 源文件命名 (15)5.14 Job的命名 (15)5.15 用户自定义函数命名 (16)5.16 用户自定义数据类型命名 (16)5.17 复制命名 (16)6.SQL Server代码规范 (16)6.1 对象创建脚本 (16)6.2 数据库更改脚本 (18)6.3 综合开发实践 (21)6.4 文本文件格式 (22)6.5 使用Return (31)6.6 错误处理 (32)6.6.1 在存储过程和触发器中使用RAISEERROR (33)6.7 Print 语句 (33)6.8 参照完整性 (34)6.8.1 主键 (34)6.8.2 外键 (34)6.9 触发器 (34)6.10 游标 (35)6.11 用户自定义函数 (36)6.12 局部变量命名标准 (37)6.13 返回最后插入的标识值 (37)7.安全 (38)8.事务处理 (39)8.1 编写高效的事务处理代码 (39)8.2 批处理 (39)附录A:最常见的不应该出现的问题 (40)1.更改2.简介数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求数据库设计和开发标准是使Newegg Support Center的数据库系统的设计和开发正式化的标准。
sql server 表名命名规则
SQL Server 表名命名规则在使用 SQL Server 数据库时,表是存储和组织数据的重要组成部分。
为了方便管理和维护数据库,表名的命名规则非常重要。
一个好的表名可以提高代码可读性、维护性和可扩展性。
本文将介绍一些常用的 SQL Server 表名命名规则,以帮助开发人员更好地设计和管理数据库。
1. 表名长度和字符限制在 SQL Server 中,表名的长度限制为 128 个字符。
为了保持可读性,建议尽量使用简洁而有意义的表名。
另外,表名只能包含字母、数字和下划线,并且不能以数字开头。
2. 使用有意义的单词为了提高代码可读性,在选择表名时应该使用有意义的单词或短语来描述表所代表的内容。
避免使用无意义或缩写的名称,这样可以使其他开发人员更容易理解你的代码。
例如,如果你正在设计一个存储用户信息的表,可以将其命名为Users或UserInformation而不是简单地命名为Tbl1或UserInfo。
3. 使用复数形式在 SQL Server 中,习惯上将表名使用复数形式来表示多个实例。
这样可以清楚地表明该表存储了多个实体的数据。
例如,如果你正在设计一个存储学生信息的表,应该将其命名为Students而不是Student。
4. 使用下划线分隔单词为了提高可读性,建议在表名中使用下划线_来分隔多个单词。
这样可以使表名更清晰易懂,并且增加了可读性。
例如,如果你正在设计一个存储订单信息的表,可以将其命名为Order_Details而不是OrderDetails。
5. 避免使用保留字和特殊字符在选择表名时,应避免使用 SQL Server 的保留字作为表名。
保留字是 SQL Server 中用于特定目的的关键词,不能作为标识符使用。
如果使用保留字作为表名,可能会导致语法错误。
另外,还应避免在表名中使用特殊字符,如空格、逗号、点等。
这些字符可能会引起命令解析错误或造成混淆。
6. 使用一致的命名约定为了提高代码可维护性和可读性,在整个数据库中应该遵循一致的命名约定。
sql server 字段名称命名的规则
sql server 字段名称命名的规则SQL Server字段名称命名的规则在SQL Server数据库中,字段名称的命名规则对于数据库的设计和维护至关重要。
良好的命名规范可以提高数据库的可读性、可维护性和可扩展性。
本文将介绍一些常用的SQL Server字段名称命名规则,帮助开发人员在数据库设计中遵循最佳实践。
1. 使用有意义的名称在为字段命名时,应该使用能够准确描述字段含义的名称。
例如,对于存储客户姓名的字段,可以使用"CustomerName"而不是简单的"Name"。
这样做可以提高代码的可读性,使其他开发人员更容易理解字段的含义。
2. 避免使用特殊字符和关键字字段名称应该避免使用特殊字符和SQL Server的关键字,以免引起语法错误。
例如,应该避免使用@、#、$等特殊字符,以及SELECT、INSERT、UPDATE等关键字作为字段名称。
3. 使用驼峰命名法或下划线命名法在字段命名中,可以选择使用驼峰命名法(Camel Case)或下划线命名法(Snake Case)。
驼峰命名法将单词首字母大写,并将单词连接在一起,例如"CustomerName";下划线命名法使用下划线将单词连接在一起,例如"customer_name"。
选择哪种命名法取决于个人偏好和团队约定。
4. 不使用缩写为了提高代码的可读性和可维护性,应尽量避免使用缩写。
例如,应该使用"CustomerName"而不是"CustName"。
尽管缩写可以节省字符数,但它们通常会降低代码的可读性。
5. 使用一致的命名约定在整个数据库中,应该使用一致的命名约定来命名字段。
例如,如果选择使用驼峰命名法,那么所有的字段名称都应该按照这个规则命名。
这样可以避免混淆和错误,并使数据库更易于维护。
6. 使用前缀或后缀为了更好地区分字段的用途,可以考虑使用前缀或后缀。
SqlServer命名规范
SqlServer命名规范SqlServer命名规范参考各种命名规范,我们统⼀使⽤命名规范如下:命名过程中如有现存的缩写,则使⽤该缩写,如⽆,⼀律不得缩写,例:ISBN数据库:⽤⼀个或三个以下英⽂单词组成,单词⾸字母⼤写,如:DepartmentManage;表名:使⽤名词性质的单词全拼表⽰,各单词⾸字母⼤写,使⽤复数形式,如:Books如果该表⽤于表明另外两表中字段间的关系,⽤单数(即表明实体间的关系的表⽤单数命名),单词中间⽆“and of in”之类的介词如:BookAuthor==============================================================================================1. 表中的字段⼀般使⽤名词性质的单词全拼表⽰,采⽤⼀个或三个以下英⽂单词组成,单词⾸字母⼤写,如:UserName;2. 表主键名称为:表名+ID,如Document表的主键名为:DocumentID3. 外键名称位:主表名+对应列名,如:DepartmentsID,说明如下:在表Departments中,其字段有:ID, DepartmentName在表UserInfo中,其字段有:UserId,UserName,DepartmentsID DepartmentsID为外键4. 表中⾃动增长的列⼀律命名为:ID;5. 如果字段为bool型,则使⽤"IsShow","IsValid","HasPassed","HasExamined","IgnoreCase"这种形式表⽰6. 如果字段位DateTime型,切且默认值是取系统时间,⼀律命名位:CheckDate7. Status为表中状态的列名,默认值为0,在表中删除操作将会改变Status的值⽽不真实删除该记录;8. 存储过程命名:sp_表名_⽅法,如:sp_News_Add,sp_News_Update;9. 视图命名:vi_表名,如:vi_News;10. 表、存储过程、视图等对象的所有都为dbo,不要使⽤数据库⽤户名,这样会影响数据库⽤户的更改。
SQL Server数据库命名与编码规范
SQL Server数据库命名与编码规范一.数据库对象命名基本规范1.总体命名规范●名称的长度不超过32个字符。
●名称采用英文单词、英文单词缩写和数字,单词之间用“_”分隔。
说明:除非用户提供文档化的行业标准(例如,国标或部颁标准),否则不得违反本规范。
●数据库对象名称首字母必须小写。
●不得采用“_”作为名称的起始字母和终止字母。
●名称必须望文知意。
●名称不得与数据库管理系统保留字冲突。
●不要在对象名的字符之间留空格。
2.数据库名数据库名定义为系统名+模块名,或直接采用系统名。
数据库名全部采用小写。
3.数据库文件数据文件命名采用数据库名+_+文件类型+[文件序号].文件后缀,文件序号为1、2、3…9等数值,当数据库中某一文件类型的文件有多个时加上文件序号以区别。
只有一个时可不加。
文件后缀:主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf。
文件名全部采用小写。
4.表表命名要遵循以下原则:●采用“系统名+_+t_+模块名+_+表义名”格式构成。
●若单系统单模块开发,命名可采用“t_+表义名”格式构成。
●若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成。
●整个表名的长度不要超过30个字符。
●系统名、模块名均采用小写字符。
●模块名或表义名均以其英文单词命名,且字符间不加分割符;表义名中单词的首字符大写,其它字符小写,多个单词间也不加任何分割符,单词全部采用单数形式。
●表别名命名规则:取表义名的前3个字符加最后一个字符。
如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)。
●关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
5.属性(列或字段)属性命名遵循以下原则:●采用有意义的列名,为实际含义的英文单词,且字符间不加任何分割符, 单词的首字符大写。
●属性名前不要加表名等作为前缀。
●属性后不加任何类型标识作为后缀。
sql server数据库命名规则
sql server数据库命名规则在SQL Server中,数据库命名规则是一个非常重要的话题。
因为一个好的命名规则可以帮助团队成员更容易地理解和开发数据库,同时也可以避免一些潜在的问题和冲突。
一、规则的原则在规定命名规则时,我们需要遵循以下原则:1. 简单性:命名规则应该简单、易懂,尽量少用复杂的缩写或特殊字符。
2. 一致性:在整个数据库中,应该保持一致的命名规则,不同的表、视图、存储过程等应该遵循相同的规则。
3. 可读性:表名应该尽可能地描述表所存储的数据,让人能够容易地理解其含义。
4. 可扩展性:命名规则应该足够灵活,以便在需要时可以轻松扩展命名规则。
5. 唯一性:命名规则应该能够确保数据库中的实体名称是唯一的,避免引起因重复命名带来的冲突。
二、命名规则下面是SQL Server数据库命名的一些通用规则:1. 数据库名数据库名通常应该是可以被理解的名字,以此来反应数据库用途和内容,应该易于区分其他数据库。
名称也应该符合标准的命名约定,应始终使用小写字母。
如果数据库名需要使用多个单词,请使用"_"(下划线)将它们连接在一起,例如Company_DB。
2. 表名表名应该是可以被理解的名字,以此来反应表用途和内容,应该易于区分其他表。
名称也应该符合标准的命名约定,应始终使用小写字母。
如果表名需要使用多个单词,请使用"_"(下划线)将它们连接在一起,例如customer_table。
3. 字段名字段名称应该是可以被理解的名字,以此来反应字段用途和内容,应该易于区分其他字段。
名称也应该符合标准的命名约定,应始终使用小写字母。
如果字段名称需要使用多个单词,请使用"_"(下划线)将它们连接在一起,例如customer_id。
4. 存储过程存储过程的名称应该是可以被理解的名字,以此来描述存储过程的功能。
名称也应该符合标准的命名约定,应始终使用小写字母。
(完整)SQL.Server命名规范_V1
SQL Server命名规范1.命名协定1。
1表和视图命名规则1,T_HistoryMsgInfoT_开头标识实体HistoryMsgInfo为数据表的业务,在我们的库中有如下几种首字母大写,后面小写前缀和表含义之间以‘_'连接2,M_HistoryMsgInfoM_开头标识内存表HistoryMsgInfo为数据表的业务首字母大写,后面小写前缀和表含义之间以‘_’连接3,V_HistoryMsgInfoV_开头标识视图HistoryMsgInfo为数据表的业务,在我们的库中有如下几种首字母大写,后面小写前缀和表含义之间以‘_'连接1。
2 列名1,列名命名规则和表名一样不过不用加下划线如:MobilePhone,MsgContent2,简写要都大写,尽量简单易懂,如:ID 即编号1.3 存储过程命名存储过程命名包括不要使用特殊的字符,大写首词,不要使用组名(比如,myProc1),不要使用系统保留的“sp_”前缀(比如可以使用up_),使用文字数据式字符,为了使存储过程名字更有意义, 下面是可选的命名规则,使用“业务”+“动作”+“对象”的方式:PR_Add_HistoryMsgInfo -—插入类型PR_Get_HistoryMsgInfo—-查询类型PR_Del_HistoryMsgInfo-—删除类型PR_Up_HistoryMsgInfo—-更新类型1。
4 触发器命名触发器命名应该遵从以下的协定:TR+ { Ins | Upd | Del}+表名Ins标识此触发器为insert触发器,UPD标识此触发器为update触发器,同理DEL被用来标识delete触发器:触发器示例:TR_Add_CustomerTR_Del_ProductCodeTR_Up_BusinessUnit1.5 索引命名索引的命名应该在表空间内唯一,当查看执行计划时可以有效的对索引进行识别。
.[IX][类型(U标识Unique,C标识Clustered)][列名(s)]当对单列进行索引时,你可能需要使用列的全名.当对多列进行索引时,要使用你所能想到的最优的缩写.当对一个表的所有列进行索引时,使用ALL单词.在多列名中使用下划线以增加可读性。
Microsoft SQL Server数据库设计规范
表设计原则:
如果你发现自己Hale Waihona Puke 重复输入数据,请创建新表和新的关系。
每个表中都可以考虑添加的3个有用的字段
· RecoredID ,记录唯一编号,不建议采用业务数据作为记录的唯一编号
数值类型
如果表示金额货币建议用money型数据,如果表示科学记数建议用numeric数据类型。
记录标识
一般采用int类型标识唯一一行记录。此列是否采用自动累增视具体情况而定。如果需要在保存之前得到此标记
。如果一个表记录数过多,而自己如何建立索引不太熟悉,可以考虑在查询分析器里索引优化向导得到SQLServer
提供的索引建议。
。你可以在分析器里执行指定语句的查询执行计划,根据执行计划显示的查询成本来调整相应的查询语句。
存储过程前缀:udp(User define procedure)表示用户定义存储过程,用它以区分出系统存储过程(sp),
如果我们写的是系统类存储过程请写usp前缀。
自定义函数前缀:udf(User define function)表示用户定义函数。
注释内容:
系统操作类的语句一般无须注释,如启动事务,关闭字符显示等语句。其他业务性的操作都应该写清楚注释。
系统操作类一般都写在语句开始和最后,它与具体业务语句用分隔符分开!
以下是一个例子:
SET QUOTED_IDENTIFIER ON
select @ServerName=vcComputer,@UserName=vcUserName,@Password=vcPassword,@DBName=vcDataBase
SQLServer数据库命名规范
SQLServer数据库命名规范良好的命名习惯是⼀种美德,下⾯是个⼈整理的数据库命名规范:数据库命名规范:1. 数据库名:1.1)⽤产品或项⽬的名字命名;1.2)Pascal Case,如AdventureWork;1.3)避免使⽤特殊字符,如数字,下划线,空格之类;1.4)避免使⽤缩写2. 表名2.1)使⽤复数,Pascal Case,⽽复数只加在最后⼀个单词上如:Products,Users,UserRoles2.2)避免使⽤特殊字符,如数字,下划线,空格之类;2.3)避免使⽤缩写3. 列名3.1)使⽤Pascal Case3.2)避免和表名重复,避免数据类型前缀如: Int3.3)避免使⽤缩写或者特殊字符4. 存储过程4.1)⽤动词加表名描述操作类型4.2)使⽤前缀:sp+{“Insert”, “Update”, “Delete”, “Get”, “Validate”,...}5. 视图5.1)参考表名规则5.2)⽤"vw"做前缀6. 触发器6.1)使⽤"trg"前缀6.2)使⽤操作类型+表名,如:trg_ProductsInsert7. 索引7.1)使⽤格式如:idx_{表名}_{索引列名}_{Unique/NonUnique}_{Cluster/NonCluster}8. 主键8.1)使⽤格式如:pk_{表名}_{主键列名}9. 外键9.1)使⽤格式如:fk_{主表名}_{主表的列名}_{引⽤表名}_{引⽤表的列名}10. default10.1)使⽤格式如:df_{表名}_{列名}11. 约束11.1)使⽤格式如:ck_{表名}_{列名}12. 变量12.1)参照列名规则。
数据库设计与开发规范(SQL Server篇)
混合分片 :
混合
混合分片水平分片和垂直分片的综合体,也即在实际应用中,根据需要将 水平分片及垂直分片结合使用的做法。
备注: 没有那种分片是最好的,只有结合具体的业务,找到适合应用的分片才是最合适的。
11
基本设计规范(1)
长度规范:
长度
凡是需要命名的对象其标识符均控制在30个字符以内,也即:SQL Server 中的表名、字段名、函数名、存储过程、触发器、视图等名字长度要尽量 不超过30个字符长度。
外键 索引
外键建立索引:
外键不建立索引,将有可能导致两个严重的问题: 1).更新相关的表产生死锁; 2).两表关联查询时性能低下。因此通常情况下都必须要求外键建立索引。
联合 索引
联合索引规范:
当数据对某表经常要多条件查询时,可能就需要建立联合索引,联合索引的 第一个引导列字段非常重要,引导列字段通常要能过滤掉大部分数据,这样 方能减少IO的读写,提高性能。非引导列字段在引导列的查询数据基础上 继续过滤数据,以提高查询速度。联合索引对更新会产生一定的性能影响。
数据完整 性维护
7
反规范化表设计方法
两大方法
增加冗余列
① 关系表中的冗余 ② 层次关系中的冗余
数据分片
① 水平分片 ② 垂直分片 ③ 混合分片
8
反规范化表设计-增加冗余列
冗余列 在表中增加经常需要访问其它表的列,导致多个表有相同的列, 即冗余列。
冗余方法
关系表中冗余:
在关系表中增加相关 实体表的相关属性, 以达到关联查询时减 .少表的关联数量的 目的。
日期 字段
日期字段 :
时效性数据应包括“创建时间/修改时间”字段,时间标记对查找数据、清理数 据、排序合并特别有用,另外要根据具体业务考量时间字段的类型,如 在Smalldatetime和Datetime类型进行选择。
数据库开发规范SQLSERVER篇最新版模板
数据库开发规范( SQL SERVER篇)拟制: 日期: 审核: 日期: 批准: 日期:修订历史记录目录修订历史记录 ................................................................. 错误!未定义书签。
第一章命名规范............................................................ 错误!未定义书签。
1.命名标志法........................................................... 错误!未定义书签。
2.数据库命名........................................................... 错误!未定义书签。
3.数据库月份库、数据表日分库命名规则......... 错误!未定义书签。
4.分段数据库分库命名规则................................... 错误!未定义书签。
5.分段分日期数据库分库命名规则....................... 错误!未定义书签。
6.表的命名............................................................... 错误!未定义书签。
7.字段命名............................................................... 错误!未定义书签。
8.存储过程命名....................................................... 错误!未定义书签。
9.触发器命名, .......................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQLServer数据库设计规范1 相关的设计规范1.1 采用有意义的字段名尽可能地把字段描述的清楚些。
当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。
每个单词的首个字母要求用大写!!!不要用下划线来连接每个单词。
1.2 遵守3NF 标准3NF 规定:A.表内的每一个值都只能被表达一次。
B.表内的每一行都应该被唯一的标识(有唯一键)。
C.表内不应该存储依赖于其他键的非键信息。
1.3 小心保留词要保证你的字段名没有保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个表,其中就用了DESC 作为说明字段名。
后果可想而知!DESC 是DESCENDING 缩写后的保留词。
表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。
1.4 保持字段名和类型的一致性在命名字段并为其指定数据类型的时候一定要保证一致性。
假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。
假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
记住,你干完自己的活了,其他人还要用你的数据库呢。
2 命名规则:2.1 数据库(Database)的定义数据库名称= 数据库内容标识(首字大写)2.2 表(Table)的定义命名应尽量反映存储的数据内容。
表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识表名称= 表名前缀+ 表内容标识(首字大写)如ClientInfo相关联的一系的表以ci作为前缀,即有表名:ciHistory,ciContact,ciBusiness2.3 字段(Field)的定义字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。
字段名称= 字段类型前缀+ 字段内容标识(首字大写)2.4 视图名视图的名称= "vw" + 视图内容标识(首字大写)如vUserPerm2.5 触发器名触发类型触发标识-----------------------------------Insert iDelete dUpdate u触发名= "tr" + 触发标识+ 相应的表名如:triClient,trdClient。
2.6 存储过程名存储过程功能存储过程功能前缀----------------------------------------添加a更新u删除d查询或其它o存储过程名称= 存储过程功能前缀+ 存储过程内容标识(首字大写)如spoChkUserPerm2.7 变量名每个单词的首个字母为大写,如@EmployeeName。
2.8命名中其他注意事项禁止使用中文命名!!!!!命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。
命名都采用英文字符,每个单词的首个字母要大写2.9 SQL语句的编写规范数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下:关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、GROUP BY、FROM、WHERE、UPDATE、INSERT INTO、SET、BEGIN、END ......2.10 Ruleru+Rule标识2.11主键pk+表名+主键标识2.12 外键fk+表名+主表名+外键标识2.13 索引idx+字段标识2.14 Defaultdf+Default标识3 编程结构和描述SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL语句。
批处理中的语句是作为一组去进行语法分析、编译和执行的。
触发器、存储过程等数据对象则是将批处理永久化的方法。
3.1注释注释可以包含在批处理中。
在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。
本规范建议:1、注释以英文为主。
实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。
为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。
2、注释尽可能详细、全面。
创建每一数据对象前,应具体描述该对象的功能和用途。
传入参数的含义应该有所说明。
如果取值范围确定,也应该一并说明。
取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
3、注释语法包含两种情况:单行注释、多行注释单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。
一般,对变量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。
对某项完整的操作建议使用该类注释。
4、注释简洁,同时应描述清晰。
3.2函数注释:编写函数文本--如触发器、存储过程以及其他数据对象--时,必须为每个函数增加适当注释。
该注释以多行注释为主,主要结构如下:/*************************************************************************** ***************** 存储过程:读取用户所分配的操作模块及具体权限* 编制者:saiko* 修改人:* 编制日期:2004.11.27* 输入参数:共有2个参数* @cUserNo:用户编号* @cUserPassword:验证密码* 输出参数:@eResult 1. 成功= 销售@0001 2. 失败=Null 3.与@eResult 无关输出是记录集* 调用例子:declare @eResult varchar(50)exec uChkUserPerm '0755' ,'123456', '销售'* 说明:**************************************************************************** ***************/CREATE PROCEDURE spoxxx…3.3条件执行语句if…else条件语句块(statenemt block,以begin…end为边界)仅在if子句的条件为真时才被执行。
为提高代码的可读性,建议嵌套不多于5层。
还有,当嵌套层次太多时,应该考虑是否可以使用case语句。
3.4重复执行while和跳转语句goto需要多次执行的语句,可以使用while结构。
其中,控制while循环的条件在任何处理开始之前需要先执行一次。
循环体中的保留字break无条件的退出while循环,然后继续处理后续语句;保留字continue重新计算while条件,如果条件为真,则从循环开始处重新执行各语句。
使用跳转语句goto和标签label也可以方便地实现循环和其他更灵活的操作。
SQL SERVER仅具有单通道语法分析器,因此不能解析对尚未创建的对象所做的前向参考。
换言之,跳转到某标签的后续语句应该是可执行的(如不存在可能尚未创建的数据对象)。
3.5书写格式数据库服务器端的触发器和存储过程是一类特殊的文本,为方便开发和维护,提高代码的易读性和可维护性。
规范建议按照分级缩进格式编写该文本。
顺序执行的各命令位于同一级;条件语句块(statenemt block,以begin…end为边界)位于下一级,类推。
SQL语句是该文本的主体。
为适应某些教复杂的用户需求,SQL语句可能比较庞大。
为方便阅读和维护,规范建议按照SQL语句中系统保留字的关键程度再划分为三级。
具体分级请参照下表。
其中,非系统保留字(如字段名、数据表名、标点符号)相对本级保留字再缩进一级。
多个连续的非保留字可以分行书写,也可以写在同一行。
当WHERE包含的条件子句教复杂时,应该每行只写一个条件分句,并为重要的条件字句填写单行注释。
在保证基本缩进格式的前提下,可以通过对齐某些重要关键字(如条件关键字AND、OR,符号= 、等)来进一步提高文本的易读性和可维护性。
相邻两级的缩进量为10个空格。
这也是ISQL编辑器默认的文本缩进量。
另外,在ISQL 编辑器中,一个TAB键也相当于10个空格。
注:按照功能,四类SQL语句(SELECT、INSERT、UPDA TE、DELETE)的关键字可以划分为三类:主关键字、次关键字、一般关键字。
如下表所示:主关键字次关键字一般关键字SELECTINSERT (INTO)UPDA TEDELETE FROMWHEREV ALUESINSERT…SELECT…FROM语句中的SELECT和FROMANDORBETWEENINLIKE3.6字体系统保留字应大写,包括系统公共变量等。
其他字符(如用户自定义变量、用户自定义数据对象名)小写。
需要特殊强调的部分可以大写。
一条完整注释语句的首字符应大写。
对某变量、某条件字句的注释可以全部使用小写。
通过下一节中生成表r_a的删除触发器的实例可以部分说明对象命名、注释、基本书写格式和字符大小写方面的一些注意事项。
4触发器编程规范4.1范例下面通过一个例子,说明触发器编程中应遵守的规范:/* delete related r_a according to deleted table */CREATE TRIGGER r_a_d ON r_aFOR DELETEASIF @@ROWCOUNT = 0 -no rows deletedRETURN/* delete r_b table related to deleted table */DELETE r_bFROM r_b b, deleted dWHERE b.id=d.idIF @@ERROR != 0BEGINRAISERROR("Error occurred deleting related records", 16, 1)ROLLBACK TRANENDRETURN数据库设计规范A.表命名规则数据库中不论是表名还是字段名,都一律用英文,不准出现其它语言;且保留原来的字段名,保留它们的规范;为了不增加数据库当中的表名的长度,一般不允许出现如Form或者Table的字样,如:记录表:应为Record,而不是RecordTable数据库当中的表名的命名,一般不准出现空格,假如有几个单词出现的话,每个单词之间不允许留有空格,用”_”隔开如人事信息表:应为Human_Info,而不是Human Info;每个单词的第一个字母必须大写;如果太长,为了不增加编程的难度可采用缩写的方式,每个单词可取三到四个字母表示,也可根据实际情况,实际习惯进行缩写B.列命名规则表中的字段名的命名方式与表名的命名方式一致,只是不需要模块的前缀,但是为了编程的方便性,可在前面加上字段类型的前缀,一般取用类型的三个字母,但是不需要下划线,而且这三个字母必须小写;如姓名字段为字符型的话就应该为chrName;尝用字段类型的缩写可参考下面的表格:缩写类型chr charnvr nvarcharnum numericflt floatdtm datetimeint Int(integer)mny moneyimg imagetxt textrel realntx ntextC.数据库对象命名规则命名规则为:对象类型+ 变量的含义数据库对象命名可归纳如下:对象前缀示例表无Sales_Reps列数据类型intAuthorId视图[View] vw vwContractAuthors存储过程[Store Procedure] prc prDeleteTerminatedReps规则[Rules] rl rlZipCheck默认[Default] df dfStandardQuanity用户自定义数据类型dt dtAddressLine用户自定义功能fn fnParser索引(聚集) ic icAuthorFullName索引(非聚集) in inClientStateCity主键(聚集) pc pcCustomerId主键(非聚集) pk pnSstateLookupId外键[Foreign Key] fk fkRepCompanyId触发器[Trigger] tr trStoreDelete游标[Cursor] cr crTablesD.特殊规则在字段的类型上面,为了不因为系统的设置而造成编程上面的问题,所以只要是日期类型,一般都用字符型来代替,其长度不应该小于10位,而且存储格式统一,如2002-07-15 。