Изначально я импортировал продукты из документа Excel из Источник питания 1 , и в нем был тип VARCHAR первичный * (пример PK # FOOD0001) * (поскольку 1 источник в то время, когда я только что импортировал его непосредственно в таблицу продуктов с автоматическим увеличением int ID)
Но мне нужно импортировать еду из другого источника Источник пищи 2 , который имеет полностью первичный тип ключа (INT) (пример PK # 25928747)
У меня сейчас есть:
Таблица продуктов
INT FoodId<PK>
, Имя
Сервировочный столик
INT ServingId<PK>
, FoodId<FK>
, Имя, Размер
Каков наилучший дизайн базы данных, чтобы можно было импортировать любой источник пищи, который не повлияет на текущие идентификаторы или, по крайней мере, имеет отображение, чтобы продукты можно было легко обновлять, удалять и т. Д.? Я не хочу менять идентификатор на VARCHAR по соображениям производительности
Одна идея, которую я имею, состоит в том, чтобы ввести FoodSourceFoodId в мою таблицу продуктов, которая имеет исходный идентификатор из источника продуктов, и, таким образом, если продукт изменяется / обновляется из источника продуктов, то его можно легко обновить в таблице продуктов?
Стол для еды
INT FoodId<PK>, *VARCHAR FoodSourceFoodId*, Name
1 #FOOD0001 Food 1
2 #FOOD0002 Food 2
3 25928747 Food 1
4 25928748 Food 2
Точно так же я мог бы сделать то же самое с таблицей порций, где идентификатор порции мог бы относиться к идентификатору порции в исходных данных.
Как вы думаете, это путь? Или вы бы предложили что-нибудь еще?