SQL Server數(shù)據(jù)庫的設計規(guī)范簡介
我們在設計SQL Server數(shù)據(jù)庫的時候,要遵循一定的設計規(guī)范,這樣設計出來的數(shù)據(jù)庫才能高效、安全、可靠。本文我們就介紹一下SQL Server數(shù)據(jù)庫的設計規(guī)范,接下來就讓我們來一起了解一下這部分內(nèi)容。
1、對象注釋規(guī)則:
注釋頭:注釋頭應該表明此對象具體實現(xiàn)功能,與之相關(guān)的對象以及操作參數(shù)、作者及最后修改時間。
存儲過程:CalLnIncome
相關(guān)數(shù)據(jù):
LnLineInfo,lnStation:提供線路及線路分成信息。
pbTransportBill,pbTrnasInfo:提供運量單數(shù)據(jù)。
lnInComeList:計算結(jié)果保存在此表中。
執(zhí)行成功標記:lnCostList表內(nèi)有最新時段的加總分成數(shù)據(jù)最后修改:By yczyk,2003.11.20
注釋內(nèi)容:系統(tǒng)操作類一般都寫在語句開始和最后,它與具體業(yè)務語句用分隔符分開!
- 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)--參數(shù)定義
- 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'
- --將數(shù)據(jù)導到當前連接服務器的全局臨時表中備用,以后只要操作##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、數(shù)據(jù)庫設計規(guī)范數(shù)據(jù)庫設計分為邏輯設計和物理設計
・ RecoredID ,記錄唯一編號,不建議采用業(yè)務數(shù)據(jù)作為記錄的唯一編號。
・ CreationDate,而在SQL Server 下默認為GETDATE()。
・ RecordCreator,在SQL Server 下默認為NOT NULL DEFAULT USER。
・ RecordVersion,記錄的版本標記;有助于準確說明記錄中出現(xiàn)null 數(shù)據(jù)或者丟失數(shù)據(jù)的原因數(shù)據(jù)類型:一般不建議采用char而采用varchar數(shù)據(jù)類型,除非當這列數(shù)據(jù)的長度特別固定時可以考慮用char。
char存在不足數(shù)值類型
如果表示金額貨幣建議用money型數(shù)據(jù),如果表示科學記數(shù)建議用numeric數(shù)據(jù)類型。一般采用int類型標識唯一一行記錄。此列是否采用自動累增視具體情況而定。如果需要在保存之前得到此標記次序,如果你要嚴格控制記錄的加入次序,也不能用自動累增類型。
所有的表都應該有一個主鍵索引,這對提高數(shù)據(jù)庫的性能很有幫助。如果表中能夠用幾個字段確定一筆記錄,可以考慮建立唯一索引,但建立了唯一索引后就有了一個約束,如,如果一個表記錄數(shù)過多,而自己如何建立索引不太熟悉,可以考慮在查詢分析器里索引優(yōu)化向?qū)У玫絊QLServer 。你可以在分析器里執(zhí)行指定語句的查詢執(zhí)行計劃,根據(jù)執(zhí)行計劃顯示的查詢成本來調(diào)整相應的查詢語句。
保證數(shù)據(jù)的一致性和完整性:
主外鍵關(guān)聯(lián)
建立主外鍵關(guān)聯(lián)可以降低數(shù)據(jù)冗余,提高查詢效率。雖然平時我們可以用join語句在不同的表之間進行關(guān)聯(lián),以在設計完表后通過企業(yè)管理器的關(guān)系圖統(tǒng)一建立好關(guān)聯(lián)圖。所有的關(guān)聯(lián)都建立好了后,我們可以在視圖的建立里表中就應該記錄當時的商品售價了。
建立約束實現(xiàn)數(shù)據(jù)有效性檢測
你可以為某一列特別重要的值建立好約束。例如,你需要憑數(shù)據(jù)庫里面的SaleKind列數(shù)據(jù)判定銷售類別,你有0值為門店銷售,1為網(wǎng)上銷售。你系統(tǒng)只有這兩種銷售渠道,你就應該為它建立約束,它的值只能在0和1之間。即SaleKind>0 and SaleKind<3 。設置默認值操作數(shù)據(jù)庫不建議用SA用戶,因為SA用戶權(quán)限過大。具體的應用應該創(chuàng)建相應的數(shù)據(jù)庫操作用戶,并只賦給它指定了異常建議寫入數(shù)據(jù)庫的日志表,查詢?nèi)罩颈硪园l(fā)現(xiàn)自己程序中操作數(shù)據(jù)庫中的失誤。
關(guān)于SQL Server數(shù)據(jù)庫的設計規(guī)范的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!更多SQL Server數(shù)據(jù)庫的知識,請參考:http://database.51cto.com/sqlserver/。
【編輯推薦】
- SQL Server 2008數(shù)據(jù)庫學習筆記
- SQL Server 2005數(shù)據(jù)庫nolock使用詳解
- SQL Server如何啟用Ad Hoc Distributed Queries?
- SQL Server 2008用存儲過程實現(xiàn)插入更新數(shù)據(jù)的實例
- 含有GROUP BY子句的查詢中如何顯示COUNT()為0的結(jié)果





















