SQL Server数据库中有多个"ID"列?

Nat*_*ate 6 sql database sql-server

通过这个链接,我知道GUID不如聚簇索引好,但它可以在任何地方唯一创建.它是一些高级SQL Server功能(如复制等)所必需的.

如果我想将GUID列作为典型的主键,它被认为是糟糕的设计吗?这也假设我的聚类ID有一个单独的int标识列,另外还有一个"用户友好"ID?

更新

在查看您的反馈后,我意识到我并没有真正说出我的问题.我知道一个Guid会产生一个好的(即使是它的过度杀伤力)PK,但是一个糟糕的聚类索引(通常).更直接问我的问题是,添加第二个"int identity"列作为聚类索引是不是很糟糕?

我认为Guid将是PK并使用它来构建所有关系/连接等.然后我不会使用自然键进行群集索引,我会添加一个不是特定于数据的附加"ID".我想知道的是那么糟糕吗?

HLG*_*GEM 2

如果您无论如何都要创建身份字段,请将其用作主键。考虑查询这些数据。整数对于连接来说更快,并且在编写查询时更容易指定。

如果必须进行复制,请使用 GUID,但不要将其用作主键。