數據庫主鍵設計之思考

發表于:2008-10-21來源:作者:點擊數: 標簽:設計庫主思考數據
關鍵字: 數據庫 主鍵 主鍵設計 主鍵的必要性: 有些朋友可能不提倡數據庫表必須要主鍵,但在我的思考中,覺得每個表都應該具有主鍵,不管是單主鍵還是雙主鍵,主鍵的存在就代表著表結構的完整性,表的記錄必須得有唯一區分的字段,主鍵主要是用于其他表的外
關鍵字:數據庫主鍵 主鍵設計
 主鍵的必要性: 
 有些朋友可能不提倡數據庫表必須要主鍵,但在我的思考中,覺得每個表都應該具有主鍵,不管是單主鍵還是雙主鍵,主鍵的存在就代表著表結構的完整性,表的記錄必須得有唯一區分的字段,主鍵主要是用于其他表的外鍵關聯,本記錄的修改與刪除,當我們沒有主鍵時,這些操作會變的非常麻煩。 
  主鍵的無意義性:
 我強調主鍵不應該具有實際的意義,這可能對于一些朋友來說不太認同,比如訂單表吧,會有“訂單編號”字段,而這個字段呢在業務實際中本身就是應該具有唯一性,具有唯一標識記錄的功能,但我是不推薦采用訂單編號字段作為主鍵的,因為具有實際意義的字段,具有“意義更改”的可能性,比如訂單編號在剛開始的時候我們一切順利,后來客戶說“訂單可以作廢,并重新生成訂單,而且訂單號要保持原訂單號一致”,這樣原來的主鍵就面臨危險了。因此,具有唯一性的實際字段也代表可以作為主鍵。因此,我推薦是新設一個字段專門用為主鍵,此主鍵本身在業務邏輯上不體現,不具有實際意義。而這種主鍵在一定程序增加了復雜度,所以要視實際系統的規模大小而定,對于小項目,以后擴展不會很大的話,也查允許用實際唯一的字段作主鍵的。 
  主鍵的選擇
我們現在在思考一下,應該采用什么來作表的主鍵比較合理,申明一下,主鍵的設計沒有一個定論,各人有各人的方法,哪怕同一個,在不同的項目中,也會采用不同的主鍵設計原則。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97