iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
1
自我挑戰組

SQL Server 資料庫程式設計/管理/經驗筆記系列 第 7

主索引鍵 (Primary-Key) 的規劃心得

  • 分享至 

  • twitterImage
  •  

根據正規化定義
每一筆資料列皆要有能夠識別一致多個欄位組合是唯一
主索引鍵就是用來識別資料列的鍵值

主索引鍵特性

  • 必須是唯一值
  • 不可為 NULL
  • 一個資料表只能有一個主索引鍵
  • 使用一至多個欄位

設計要領

主索引鍵資料形態越小越好

今天設計一個縣市的資料表
目前縣市總數不會超過 256 個
該資料表的主索引鍵資料型態選擇 TINYINT 就會比較適合

問題探討

是否該使用身分證字號建立主索引鍵

先來檢視身分證字號儲存資料的定義

戶政系統規劃:每個人都會有自己唯一的身分證字號

常識理解身分證字號是不會重複
但現實往往就是會遇到重複的資料(通常是手動輸入錯誤)

先前就處理過身份證字號一堆重複
結果客戶要求唯一條件變更為身分證字號出生日期

這一變更資料庫的關聯都需要進行異動

有打算使用身分證字號建立資料表的主索引鍵
透過額外建立一個數字欄位作為主索引鍵 (primary-key)

然後將身分證字號欄位設定成唯一限制 (unique)
會是個比較有彈性的選擇


上一篇
從範例資料庫學習:Elmah
下一篇
資料型態的選擇
系列文
SQL Server 資料庫程式設計/管理/經驗筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言