0

在我的旧 Web 应用程序中,这是 sql server 2005 中客户表的结构:-

custId, custName,custAddress,custGUID
1        scott    mark       B36AF54E-F2B5-4845-9595-AC05K898AE14

我的问题是关于被声明为 uniqueIdentifier() 的列 custGUID,它是 GUID)。我没有得到主键和 uniqueIdentifier 之间的区别以及引入额外列作为 guid 的原因。根据不同的站点,我知道 uniqueIdentifier 在整个 sqlserver 2005 中是唯一的,但主键是唯一的,在该特定方面是唯一的桌子 。但我无法想到任何将任何列设为跨 sql server 的 GUID/唯一的场景。想了解 GUID 列何时以及如何有意义?由于所有团队成员都是新人,无法弄清楚其中的奥秘

4

1 回答 1

0

这是一个很难回答的问题,因为这样做有很多原因,其中大多数根本不好。

您可能正在查看一个遗留应用程序,其中数据存储在多个服务器上。为了避免在最终合并数据时覆盖数据,引入了 GUID 列。

我以前在应用程序中看到过这种情况,例如,员工在他们的笔记本电脑上拥有该程序的副本,并且在没有可靠互联网连接的情况下远程工作。因此,所有发票等都链接到 GUID 而不是客户 ID,这使得以后可以将所有数据合并到一个数据库中,而不会冒以错误方式相互链接的风险。

您的陈述是正确的,唯一标识符应该已经足够了,但请考虑一下如果同时运行多个数据库会发生什么。例如,您最终可能有五个客户,每个客户的客户 ID 为 4。如果让我猜测,我会说这就是最初的设计师走这条路的原因。

于 2012-05-08T07:04:37.217 回答