SQL Server數據庫的設計規范簡介
我們在設計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的結果