我正在开发一个使用 CQRS 和 DDD 原则的分布式系统。基于此,我决定我的实体的主键应该是由我的域(而不是数据库)生成的 guid。
我一直在阅读有关 guid 作为主键的信息。但是,如果应用于 Azure SQL 数据库,某些最佳实践似乎不再有效。
如果您使用本地 SQL 服务器计算机,则顺序 guid 非常好 - 生成的顺序 guid 将始终是唯一的。但是,在 Azure 上,情况不再如此。正如该线程中所讨论的,它甚至不再受支持;并且生成它们也是一个坏主意,因为它会成为单点故障,并且不再保证跨服务器的唯一性。我猜顺序 guid 在 Azure 上没有意义,所以我应该坚持使用常规 guid。这个对吗?
Guid 类型的列不适合进行聚类。但是这篇文章指出,Azure 上的情况并非如此,而这篇文章则相反!我应该相信哪一个?我是否应该将我的主键设为 guid 并使其保持集群状态(因为它是主键的默认设置);还是我不应该将其聚类并选择另一列进行聚类?
感谢您的任何见解!