我有一个实体框架模型,该模型带有一个预计可以容纳大量数据的表。我担心使用 int 主键,因为我希望它会变得更大。我正在考虑使用 Int64 来解决这个问题。
这是真正的踢球者 - 我在有问题的表上使用每个类型继承的表。因此,如果我使用 Int64,将有几个其他表(实际上是任意数量的表,因为我将添加更多)必须使用 Int64 主键,即使它们增长超出 int 范围的可能性很苗条。似乎是一个低效的解决方案。想法?
我正在考虑使用由 int ID 和子类型鉴别器(可能是 char)组成的复合键。我想知道这种方法对性能的影响。我一直更喜欢代理键,除非它是一个简单的关联实体。有没有比这两种方法更好的方法?其中哪一个是更可取的路线?
更新:
我想澄清一下,我正在考虑的复合键不是自然复合键。它只包含 ID 和子类型鉴别器。我有兴趣使用它来避免 int 主键的大小限制。我主要担心的是:
1) 使用 Int64 主键是否存在性能问题?特别是在每个类型继承的表中,只有父表需要,但也必须在子表中使用。
2) 使用复合键(非自然键)实现比 int 主键更大的范围是否比使用 Int64 键执行相同操作提供任何性能优势?