当前位置: 首页 > 知识库问答 >
问题:

在Laravel中存储“历史数据”到数据库中的正确方法是什么?

陆绍辉
2023-03-14

我正在通过使用Laravel作为后端开发来创建一个电子商务移动应用程序。

方案:我有一个Product表,其中存储了有关产品的一些信息。每当用户购买一个产品,他将得到一个购买历史记录(它将显示产品信息)将被存储到数据库中。所以当卖家更新他们的产品信息时,用户购买历史记录的产品信息不会受到影响。

问题:如果我只是简单地创建一个用户的购买历史记录表来存储每个用户的记录,我认为这将在数据库中需要大量的空间。

问题:是否有更好的存储购买历史记录的方法?或者有没有一种方法可以在产品被卖家更新或删除之前创建一个类似“快照”的记录?

共有1个答案

劳昊明
2023-03-14

好吧,这是一个更多的基于意见的问题。

我个人使用的方法是您也想到的方法:将产品的相关数据存储在一个单独的表中。假设您有usersproductsorders表。一个用户有很多订单,一个订单有很多产品。我使用一个附加表details来存储与产品相关的信息(基本上是相关的数据),这样,在原始产品发生变化的情况下,信息仍然是正确的。您还可以将此信息存储在购买历史记录的json列中。

另一种方法可以是在更新时创建新的产品对象:

  • 产品A(ID:1):价格-10美元-01/08/2019
  • 产品B(ID:2):价格-25美元-01/08/2019
  • 产品A(ID:3):价格-11美元-05/08/2019(产品价格“更新”后)

这样,如果有人在2019年02/08购买了产品a,价格将是10美元,并且您历史记录中的外键将指向PRODUCT_ID=1。当然,这种方法不是我要使用的方法,因为报告将更难处理。

 类似资料:
  • 问题内容: 让我解释一下:我并不是在问将特定日期时间的时区存储在数据库中的正确方法。我说的是时区本身。例如: 我有一个名为“用户”的MySQL表。现在,在此表上,我希望有一列包含用户居住地的时区(由用户提供,将从列表中选择)。我正在使用PHP,其中包含类似以下时区字符串的列表: 美国时区列表 现在,显而易见的解决方案(至少对我而言)是在“用户”表中创建VARCHAR列,然后将PHP使用的时区字符串

  • 问题内容: 我的简化人为示例如下: 可以说,我想每天测量和存储世界上所有城镇的温度(和其他值)。我正在寻找一种存储数据的最佳方式,以使获取所有城镇中的当前温度与获取一个城镇历史上的所有温度一样容易。 这是一个很容易解决的问题,但我正在寻找最佳解决方案。 我能想到的2个主要选项如下: 将所有当前记录和归档记录存储在同一表中。 IE 这将使所有事情变得简单,但是最有效的查询是获取城镇列表和当前温度的列

  • 问题内容: 前言:前几天,我在考虑为新应用程序使用新的数据库结构,并意识到我们需要一种有效地存储历史数据的方法。我想让其他人看一看,看看这种结构是否有任何问题。我意识到这种存储数据的方法很可能以前就已经发明了(我几乎可以肯定已经有了),但是我不知道它是否有名称,并且我尝试过的一些Google搜索都没有产生任何结果。 问题:假设您有一个订单表,并且订单与下订单的客户的客户表相关。在正常的数据库结构中

  • 问题内容: 最近,我考虑了将历史数据存储在MySQL数据库中的最佳做法。目前,每个可版本控制的表都有两列-和,两者均为类型。具有当前数据的记录已充满了创建日期。当我更新此行时,我填写了更新日期,并添加了与上一行相同的新记录- 简单的东西。但是我知道表会非常快,因此获取数据可能会很慢。 我想知道您是否有任何存储历史数据的做法? 问题答案: 担心“大”表和性能是一个常见的错误。如果您可以使用索引来访问

  • 问题内容: 在PHP系统中,我有一个常见的MVC情况:从包含的数据中接收请求。现在,我有三种方法来处理数据: a)仅调用和处理数据。 b)在变换的数据转换成变量,并将它们传递到。 c)将数据转换为的域对象,并将该对象仅传递给。 目前,我正在使用选项A,但是我认为这是错误的,因此我正在考虑使用选项C。 因此,根据MVC,处理数据的正确方法是什么? 编辑 目前,我没有使用任何MVC框架。 编辑2 通常

  • 问题内容: 我正在使用numpy.save函数保存NumPy数组。我希望其他开发人员能够使用C语言从这些文件中读取数据。所以我需要知道numpy如何在file中组织二进制数据。确定,当我保存’i4’数组时很明显,但是包含某些结构的数组的数组又如何呢?在文档中找不到任何信息 UPD:可以说tha数据类似于: UPD2:如何保存“动态”数据(dtype-对象) 从C那里读那个东西真的吗? 问题答案: