我们所处的环境中,在某些情况下,要求我们的数据库中的行具有GUID标识符(在应用程序中生成,而不是由DB生成。原因是因为我们处于分布式/微服务环境)。
目前GUID是主键。
这些表还有另一个整数(标识)标识符,它是唯一的并设置为聚簇索引。这是必需的,因为SQL服务器的默认设置是将PK作为聚簇索引,这对于GUID来说是不好的做法。
鉴于将始终存在GUID,并且始终存在唯一的整数标识符,是否存在将整数标识列作为PK的缺点,和GUID作为一个独特的列?
电流:
建议:
我已经阅读了一些关于使用GUID以及您需要注意的事项。一般而言,似乎存在“当前”(GUID PK,INT unqiue / clustered)的缺点。据我所知,这些将包括:
非标准的含义是,开发人员需要了解更多内容,并且在使用GUID方法时必须做/改变某些事情以确保其正常运行。
据我所知,在使用“Proposed”(INT PK,GUID唯一)方法时,你没有上述缺点,我很惊讶这不是一个更容易提出的解决方案,这导致我认为我可能会遗漏一些东西。
鉴于要求(总是有两种方法可以唯一标识行,GUID和INT),是否有任何理由说明不会将INT作为主键?