資料表規劃再叮嚀:
一般人在設計資料表時,最容易犯的錯誤包括下列各項:
1.
一個資料表內擁有同質性差距甚大的資料主題。例如,學生與老師基本資料、或是客戶與員工基本資料擺在同一個資料表中。
2.
資料表中擁有一些無意義的欄位。例如,區域號碼欄位應該與電話號碼欄位合併即可。
3.
建立多餘不必要的欄位。例如,員工年齡欄位(不必要field)可以在需要資訊時,經由出生日期欄位與目前日期的年份彼此相減即可求得。
意即,運算所需的來源資料可以儲存在資料表中,但運算所得的結果資料不應儲存在資料表中。
4.
資料表定義過多性質類似(或相同)的欄位。例如,第1-3次月考的數學與英文成績,用了Math1、Math2、Math3、Eng1、Eng2與Eng3共6個欄位,事實上只需定義Math、Eng與月考別的欄位,共3個欄位即可。
5.
在兩個同關聯的資料表內,重複建立相同欄位。例如,訂單與客戶資料表內,重複建立客戶名稱與客戶地址,造成若欲更改名稱或地址時的效率與系統資源的浪費。
※全球性獨一識別碼
如果欄位內要存放「全球性獨一識別碼」(GUID),則應採用uniqueidentifier資料型態。GUID是一個16位元組大小的二進位數值,其格式中每一個x介於0~9或a~f間的16進位數值:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
如果您希望SQL
Server自動替uniqueidentifier資料型態產生新的GUID,意即當新增資料記錄時使用者不需自行鍵入GUID而完全由SQL Server自動產生的話,只需以NEWID函數作為uniqueidentifier資料型態之欄位的預設值(Default)即可。可由兩種做法達成:
1.
在SQL Server Enterprise Manager建立資料表結構時,於uniqueidentifier資料型態欄位之「預設值」直欄的文字方塊中鍵入newid()即可。
2.
使用CREATE TABLE命令建立資料表時,可使用DEFAULT引數將uniqueidentifier資料型態之欄位的預設值設定成NEWID函數即可。
範例:
/* 檔案名稱:Demo52.sql */
CREATE TABLE
ComputerManager
(
ComputerID uniqueidentifier
DEFAULT NEWID(),
ComputerName varchar(16)
)
沒有留言:
張貼留言