Лучшая практика, чтобы показать название продукта и описание, если его удалили? - PullRequest
0 голосов
/ 15 октября 2018

Как отобразить заголовок «Продукты» в истории «Заказы», ​​если продукт уже удален из таблицы «Продукты»?

Например: у меня есть две таблицы, а именно «Продукты» и «Заказы»."таблицы.Таблица продуктов содержит все данные о продукте, где в таблице «Заказы» хранятся только «product_id» и другие детали заказа.История заказов отображается путем объединения таблицы «продукты» и «заказы».Теперь, если поставщик удаляет продукт, но у него есть история продаж, то как показать название и описание продукта?

Как лучше всего справляться с подобными ситуациями?

1 Ответ

0 голосов
/ 17 октября 2018

Как правило, если вы запрашиваете сегодня заказ, которому исполнился год, запрос должен вернуть точно того же запроса, который был возвращен год назад.Это верно вне зависимости от того, было ли имя продукта (название) с тех пор изменено - обновлено, удалено и т. Д.

Самый простой способ сделать это - сохранить как идентификатор продукта, так и название продукта ввремя заказа с заказом.Это означает хранение его в одной или нескольких таблицах «порядка» - может быть, «order_details», «invoice_details» и т. Д. Это также означает, что нужно делать что-то разумное в отношении ссылок на внешние ключи.Таблицы, в которых вы храните оба этих атрибута, зависят от приложения и поэтому являются «чем-то разумным в ссылках на внешний ключ».

Помимо хранения идентификатора продукта и названия продукта, вам необходимо тщательно контролировать, кто может обновлять таблицы, в которых они хранятся.

...