今天下午与我的同事讨论了将 GUIDS 与 IDENTITY 字段作为主键的优点。来自大数据背景,我本能地选择了 IDENTITY,但他们更面向 Web,更喜欢 GUIDS。
大多数优点和缺点都有很好的记录,并在此进行了巧妙的总结:
http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html
但我的同事提出了一个我无法回答的问题,谷歌也无法回答,我认为这是一个有趣的问题。在单页应用程序样式系统中,javascript 模型(即 Breeze JS)通常用于在提交之前临时保存许多可能的数据库更改,以减少服务器往返。这增加了表的 IDENTITY 字段由于同时另一个插入而增加的机会。当然,当您尝试提交时,这可能会导致混乱。
那么在这种情况下,特别是考虑到 SPA 通常在数据库级别没有性能瓶颈,使用 GUID 通常更明智吗?还是我们夸大了堆叠多个更改以提交的潜在问题?