我们在设计SQL Server数据库的时候,要遵循一定的设计规范,这样设计出来的数据库才能高效、安全、可靠。本文我们就介绍一下SQL Server数据库的设计规范,接下来就让我们来一起了解一下这部分内容。
1、对象注释规则:
注释头:注释头应该表明此对象具体实现功能,与之相关的对象以及操作参数、作者及最后修改时间。
存储过程:CalLnIncome
相关数据:
LnLineInfo,lnStation:提供线路及线路分成信息。
pbTransportBill,pbTrnasInfo:提供运量单数据。
lnInComeList:计算结果保存在此表中。
执行成功标记:lnCostList表内有最新时段的加总分成数据最后修改:By yczyk,2003.11.20
注释内容:系统操作类一般都写在语句开始和最后,它与具体业务语句用分隔符分开!
- SET QUOTED_IDENTIFIER ON
- SET ANSI_NULLS ON
- SET ANSI_WARNINGS ON
- SET XACT_ABORT ON declare @ServerName varchar(50),@UserName varchar(20),@Password varchar(20),@DBName varchar(30),
- @TableQuery varchar(4000)--参数定义
- select @ServerName=vcComputer,@UserName=vcUserName,@Password=vcPassword,@DBName=vcDataBase
- from smDataParam set @TableQuery='select * into ##QJGroupInfo from opendatasource('+'''SQLOLEDB'','+'''Data
- Source='+rtrim(@ServerName)+';User ID='+rtrim(@UserName)+';Password='
- +rtrim(@Password)+''').'+rtrim(@DBName)+'.dbo.QJGroupInfo'
- --将数据导到当前连接服务器的全局临时表中备用,以后只要操作##QJGroupInfo表就可以
- exec (@TableQuery) update smDept set vcDeptName=t.GroupName from (
- select m.vcTransDeptNo,g.GroupName from ##QJGroupInfo g inner join smDeptRelate m
- on m.vcSourceDeptNo=g.GroupID where m.RelateKind=0)as t where cDeptNo=t.vcTransDeptNo
2、数据库设计规范数据库设计分为逻辑设计和物理设计
・ RecoredID ,记录唯一编号,不建议采用业务数据作为记录的唯一编号。
・ CreationDate,而在SQL Server 下默认为GETDATE()。
・ RecordCreator,在SQL Server 下默认为NOT NULL DEFAULT USER。
・ RecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因数据类型:一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定时可以考虑用char。
char存在不足数值类型
如果表示金额货币建议用money型数据,如果表示科学记数建议用numeric数据类型。一般采用int类型标识唯一一行记录。此列是否采用自动累增视具体情况而定。如果需要在保存之前得到此标记次序,如果你要严格控制记录的加入次序,也不能用自动累增类型。
所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助。如果表中能够用几个字段确定一笔记录,可以考虑建立唯一索引,但建立了唯一索引后就有了一个约束,如,如果一个表记录数过多,而自己如何建立索引不太熟悉,可以考虑在查询分析器里索引优化向导得到SQLServer 。你可以在分析器里执行指定语句的查询执行计划,根据执行计划显示的查询成本来调整相应的查询语句。
保证数据的一致性和完整性:
主外键关联
建立主外键关联可以降低数据冗余,提高查询效率。虽然平时我们可以用join语句在不同的表之间进行关联,以在设计完表后通过企业管理器的关系图统一建立好关联图。所有的关联都建立好了后,我们可以在视图的建立里表中就应该记录当时的商品售价了。
建立约束实现数据有效性检测
你可以为某一列特别重要的值建立好约束。例如,你需要凭数据库里面的SaleKind列数据判定销售类别,你有0值为门店销售,1为网上销售。你系统只有这两种销售渠道,你就应该为它建立约束,它的值只能在0和1之间。即SaleKind>0 and SaleKind<3 。设置默认值操作数据库不建议用SA用户,因为SA用户权限过大。具体的应用应该创建相应的数据库操作用户,并只赋给它指定了异常建议写入数据库的日志表,查询日志表以发现自己程序中操作数据库中的失误。
关于SQL Server数据库的设计规范的知识就介绍到这里了,希望本次的介绍能够对您有所收获!更多SQL Server数据库的知识,请参考:http://database.51cto.com/sqlserver/。
【编辑推荐】
- SQL Server 2008数据库学习笔记
- SQL Server 2005数据库nolock使用详解
- SQL Server如何启用Ad Hoc Distributed Queries?
- SQL Server 2008用存储过程实现插入更新数据的实例
- 含有GROUP BY子句的查询中如何显示COUNT()为0的结果