我有一个订单表,目前存储产品ID和数量。
但是,如果要从网站上删除产品,那么在获取订单数据时,订单和产品之间就不会存在关系(产品不再存在)。
纠正这个问题的最佳方法是什么?我是否需要在订单中存储产品名称等?
答案 0 :(得分:2)
我不建议首先严格删除您的产品。
相反,您可以通过向名为bool
的产品表添加额外deleted
来删除它们,并在删除产品时将其添加到true
。这样您就可以保留对旧的,已删除的产品的引用。
请注意,您必须更改SELECT查询以包含
WHERE deleted = false
。因此,您只能获得未被删除的产品。
如果您意外删除了您不想删除的产品,这也很有用。因为您可以轻松地将其更改回来。
答案 1 :(得分:0)
有些系统(*)正如您在问题中所指出的那样处理此问题 - 通过将产品名称(和其他相关数据)复制到订单中,以便订单仍然包含其中的所有信息,即使产品已删除。
(*)例如,OpenCart和Zen Cart都这样做。