显示产品标题和说明(如果已删除)的最佳做法?

时间:2018-10-15 06:28:22

标签: database database-design relational-database

如果已经从“产品”表中删除了产品,如何在“订单”历史记录中显示“产品”标题?

例如:我有两个表,即“产品”和“订单”表。产品表包含所有产品详细信息,其中“订单”表仅存储“ product_id”和其他订单详细信息。通过连接“产品”和“订单”表来显示订单历史记录。现在,如果供应商删除了产品但有销售历史,那么如何显示产品标题和说明?

处理这种情况的最佳实践是什么?

1 个答案:

答案 0 :(得分:0)

根据经验,如果您今天查询今天已有一年的订单,则查询应准确返回 一年前相同查询返回的内容。不管此后是否更改了产品名称(标题)(更新,删除等等),都是如此。

最简单的方法是在订购时同时存储商品ID和商品名称​​ 。这意味着将其存储在一个或多个“订单”表中,例如“ order_details”,“ invoice_details”等。这还意味着对外键引用进行一些明智的选择。您存储这两个属性的表是特定于应用程序的,因此“有关外键引用的某些事情”也是明智的。

除了存储产品ID和产品名称之外,您还需要仔细控制谁可以更新存储在其中的表。

相关问题