我继承了一个数据库,其构思是复合键比使用唯一的对象ID字段更理想,并且在构建数据库时,永远不应将单个唯一ID 用作主键.因为我正在为这个数据库构建一个Rails前端,所以我遇到了使它符合Rails约定的困难(虽然可以使用自定义视图和一些额外的gem来处理复合键).
编写它的人的这种特定模式设计背后的原因与数据库如何以非有效方式处理ID字段有关,并且当它构建索引时,树类排序存在缺陷.这个解释没有任何深度,我仍然试图围绕这个概念(我熟悉使用复合键,但不是100%的时间).
任何人都可以提供意见或为此主题添加更深入的内容吗?
我正在考虑改变一些表,使用nvarchar(50)作为主键而不是int主键.使用密钥的int ID确实是无关数据,它是我感兴趣的字符串.会发生什么样的性能影响,或者你在哪里研究它?除了剪切和尝试之外.
这是我的问题:为什么我应该使用自动增量字段作为我的表的主键而不是像UUID值?
一个人比另一个人有什么主要优势?他们有什么问题和优势?