2012-06-13 34 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具有较大的一组优点/缺点