我有一个订单表,它目前存储产品ID和数量。
但是,如果将产品从站点中删除,那么当获得订单的数据时,订单和产品之间就不会有任何关系(产品不再存在)。
纠正这种情况的最好办法是什么?我需要在订单中存储产品名称等吗?
发布于 2017-03-22 14:17:21
我不建议从一开始就删除你们的产品。
相反,您可以通过在名为bool的products表中添加一个额外的deleted来软删除它们,并在删除产品时将其放到true中。这样,您就可以保留对旧产品的引用。
请注意,您必须更改SELECT查询以包含
WHERE deleted = false。所以你只能得到那些没有被删除的产品。
如果您不小心删除了不想删除的产品,这也是有用的。因为你可以很容易地把它改回来。
发布于 2017-07-01 21:38:24
有些系统(*)完全按照您在问题中所指出的那样处理这个问题--将产品名称(和其他相关数据)复制到订单中,以便即使产品被删除,订单仍将包含其中的所有信息。
(*)例如,OpenCart和OpenCart都这样做。
https://stackoverflow.com/questions/42954063
复制相似问题