※ 引述《jj09 (YA!春天快來了...)》之銘言:
: 在SQL Server上設計資料表格時
: 難免都會遇到PrimaryKey(PK)
: 要選擇使用int或uniqueidentifier資料型態
: 爬過Google大神後
: 多數的人還是比較推使用int
: 主要原因是在於存取效能與資料長度二個因素下
: 最後選擇int
: 因此想詢問大家
: 當版友們在設計一個軟體
: 這個軟體的使用者除了對公司內部份
: 同時外部的一般人也會是使用者的一部份
: 會如何選擇
: 為什麼會做這樣的選擇?
: 對我來說
: 為了要避免外部和內部使用者在試著用
: 可以預期PK的狀況去嘗試讀取別的資料紀錄
: 會選擇可能失去效能與儲存空間的狀況下
: 選擇uniqueidentifier
首先..你表達的還滿不清楚的,
無法理解你所說的,PK在外部使用者和內部使用者會產生不同的狀況,
通常,會使用uniqueid為的是分散式的資料庫,
因為uniqueid的唯一性,使得想個資料庫資料合併時,
省去了相當多的麻煩,
而另一個好處就是,你可以在程式中產生,而且在寫進資料庫"前"就知道他的ID,
很多時候PK使用int時,我們會讓他自動+1,
可是這時候,只有在這筆資料寫進資料庫"後",你才會知道他的ID是多少,
如果你不是分散式資料庫,又或是小系統,輕型資料庫(在行動裝置上面跑的),
在效能和空間是有必要的考量時,當然是使用int,
因為他快得多了,
而uniqueid這個東西,你就得看產生的機制了,
有些狀況,後產生的uniqueid會比之前的uniqueid還大,
這樣就沒有那麼嚴重的效能問題(index 不用重排),
不過也有些server雖然後產生的uniqueid會比之前的uniqueid還大,
可是在重開機後,規則就亂掉了,
建議先測試一下。
--
我覺得IE11是世界上最強的瀏覽器了 沙歌火估I ◥▁▁▁▁ ◢ 麥
其他的應該廢除 發劇狐狗E ◤ ██ /- 科
裡 狸 □–□◢◤ 舒
如果各位有興趣的話,可以現在開始下載 ▼ㄑ ◢ 服
只要Google下載Internet Explorer ψBigLoser ▼ㄧ /◣ 特
因為我們只會支援精英瀏覽器,絕對不會接受垃圾 ψdohProject ◢ /◣– ◤ /█◣
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.104.106
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1410154179.A.505.html