跨多个数据库表维护唯一 ID 字段的最佳方法是什么?
我的数据库同时包含企业和人员,并且这两个实体都需要有一个与之关联的唯一 ID 字段。此外,还有其他表(例如地址)可以使用他们的 ID 作为外键来引用企业或个人。
我正在考虑的一些想法是:
使用插入行时计算的非自动编号 ID 字段。这将解决我的唯一性问题,但是每当我想通过相关属性(例如通过地址)查找某些内容时,我都必须检查两个表,其中一个包含我正在寻找的记录。
向自动编号 ID 添加前缀以标识要在哪个表中查找 ID,但是我在关联表中的 ID 字段可能会变成字符串或包含与它们关联的表的标志,我不确定这将如何影响性能。
将人员和企业合并到一个表中。我的问题是人和企业有不同的属性,需要单独的字段,这违背了我的本性,因为我更喜欢为单独的实体提供单独的表。
创建一个主表,其中包含一个唯一的 ID 字段、个人或业务的 ID 字段以及一个表明它是哪一个的标志。然后使用该 ID 作为我的外部参考 # 并在所有关联的表中。
因为我不是 dba,所以我不知道一些更好的处理方法
无论我采用哪种解决方案,都需要能够轻松处理大量记录(这将要替换的数据库有几百万条记录)并且位于 MS Sql Server 上