我有一个中央数据库和一个独特的数据库为我正在处理的项目。中央数据库允许我为用户提供默认选项和数据。如何避免主键冲突时合并两个相同的表与视图
独特的数据库中心数据库结构相匹配,让用户自己定制的数据。我认为联合每个相同的表对。
在每个视图中的“主关键字”字段被设置为在我使用(LINQ到SQL)dbml的主键。然后我将关联添加到dbml中的其他表。
这意味着我不能将两个表都设置为自动递增,其基数为0,因为主键在独特的数据库表中用作“外键”(我知道它们在此实例中不是严格的外键)。
因此,在本视图中,我需要从每个表对所有记录具有唯一的主键。
我曾经想过在1000000什么设置独特的数据库PK基数,但当全球数据库(0基地)赶上这最终可能会在我身上适得其反。
我也尽管在视图中用数字前缀,例如,
全球:11,12,13,14,15,16,17,18,19,110,111 唯一:21,22,23,24,25,26,27,28,29,210, 211
我担心如何查询时,这可能会影响性能,这必须是尽可能高效。
不确定最佳方法?
只要确保在每种情况下使用的数字范围足够大。一个INT的上限超过20亿,如果这还不够,你可以使用一个数据库从零递减的负数,另一个从零递增的正数。如果仍然不够,则使用BIGINT或NUMERIC。 – sqlvogel
我喜欢这个消极的选择,在这个例子中,我会继续这样做!干杯! – Oliver