2012-06-13 36 views
-1

我需要記錄令牌錯誤響應,只有兩種類型的錯誤。何時不使用GUID主?

「RequestError」和「關於SystemError」

由於這些錯誤不改變,爲什麼要使用GUID作爲主鍵,爲什麼不能我只是存儲他們的錯誤是「RequestError」和「關於SystemError」?

(我工作的同事說,我們應該保存它作爲唯一的標識符,因爲其他一切都存儲的唯一標識符嗯,如果我們改變這些錯誤,別的東西后,它很容易!嗯,但他們不改變?)

基於我怎麼解釋你(標題)問題
+4

這真的不清楚你在問什麼的。首先,這些都是無用的錯誤消息,所以我並不完全清楚堅持它們的價值。其次,GUID通常不會提供非常好的主鍵(或者,更具體地說,它們不會爲非常好的聚集索引做出貢獻)。第三,這些數據真的需要關係/標準化嗎?如果將來某一天的錯誤類型發生變化,是否應該_really_更​​改所有的歷史錯誤消息?我不這麼認爲。 – David

+1

@David我同意你的看法(並且決不會選擇主鍵的GUID),但這是他們引入'NEWSEQUENTIALID()'的原因之一...... ... –

+0

@AaronBertrand:的確,當我找到一個實現我喜歡我會確定並使用它:)我使用'NEWSEQUENTIALID()'時遇到的一個問題是它是特定於計算機的(甚至是引導專用的)。因此,如果GUID僅在同一臺機器上生成(即使不重新啓動),它們也只能是連續的。然而,使用GUID的主要原因是它們在機器上是全局的。如果我的所有數據都必須保留在一臺主機上,我不需要一個GUID。 – David

回答

2

,我會建議具有http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html

讀這是一個簡短的閱讀和有利弊/利弊的名單,我傾向於不同意的GUID不作非常好的主鍵(或更多,所以我覺得這是一個一般的聲明)

我想想如果你的記錄是「RequestError」或者「SystemError」,那麼guid可能會超過要求,如果表格要保存大量記錄,那麼簡單的int主鍵可能更有效。

也有一個鏈接到http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html具有較大的一組優點/缺點