最初,我从Food Source 1的 excel 文档中导入食物,它具有 VARCHAR 类型 primary* (PK 示例 #FOOD0001)* (因为当时只有 1 个源,我刚刚直接导入具有自动递增 int ID 的食物表)
但我需要从具有完全主键类型 (INT) 的另一个来源Food Source 2导入食物(PK 示例 #25928747)
我目前有:
食物表
名称
FoodId<PK>
_
份量表
INT
ServingId<PK>
,FoodId<FK>
, 名称, 大小
最好的数据库设计是什么,以便可以导入任何不会影响当前 ID 的食物来源,或者至少有一个映射,以便可以轻松更新、删除食物等?出于性能原因,我不想将 ID 更改为 VARCHAR
我的一个想法是在我的食物表中引入一个FoodSourceFoodId,它具有来自食物源的原始ID,这样如果食物从食物源更改/更新,那么它可以很容易地在食物表中更新?
食物表
INT FoodId<PK>, *VARCHAR FoodSourceFoodId*, Name
1 #FOOD0001 Food 1
2 #FOOD0002 Food 2
3 25928747 Food 1
4 25928748 Food 2
同样,我可以对服务 id 可能与源数据中的服务 id 相关的服务表做同样的事情
你认为这是要走的路吗?或者你会建议别的吗?