我正在通过使用Laravel作为后端开发来创建一个电子商务移动应用程序。
方案:我有一个Product表,其中存储了有关产品的一些信息。每当用户购买一个产品,他将得到一个购买历史记录(它将显示产品信息)将被存储到数据库中。所以当卖家更新他们的产品信息时,用户购买历史记录的产品信息不会受到影响。
问题:如果我只是简单地创建一个用户的购买历史记录表来存储每个用户的记录,我认为这将在数据库中需要大量的空间。
问题:是否有更好的存储购买历史记录的方法?或者有没有一种方法可以在产品被卖家更新或删除之前创建一个类似“快照”的记录?
好吧,这是一个更多的基于意见的问题。
我个人使用的方法是您也想到的方法:将产品的相关数据存储在一个单独的表中。假设您有users
、products
和orders
表。一个用户有很多订单,一个订单有很多产品。我使用一个附加表details
来存储与产品相关的信息(基本上是相关的数据),这样,在原始产品发生变化的情况下,信息仍然是正确的。您还可以将此信息存储在购买历史记录的json列中。
另一种方法可以是在更新时创建新的产品对象:
ID:1
):价格-10美元-01/08/2019ID:2
):价格-25美元-01/08/2019ID:3
):价格-11美元-05/08/2019(产品价格“更新”后)这样,如果有人在2019年02/08购买了产品a
,价格将是10美元,并且您历史记录中的外键将指向PRODUCT_ID=1
。当然,这种方法不是我要使用的方法,因为报告将更难处理。