【发布时间】:2016-11-19 11:53:17
【问题描述】:
我正在考虑使用 JSON 数据类型在 MySQL 5.7+ 中保存历史数据价格的可能解决方案,而不是为每个历史价格添加新行。
案例描述: 我有一张名为“产品”的产品当前价格和产品描述表。产品价格可能会在几天后发生变化,我想使用 JSON 数组保存历史价格变化:
JSON 基础结构:
PriceChangeDate (date)
PriceChanged (float)
PromoType (tinyint)
PromoDesc (nvarchar(50))
我们的想法是将历史数据保存到一个名为“HistoricalProductPrices”的单独表中,其中包括 ProductID、(与“Products”表的关系)、DateCreated 和带有我描述的字段的 ProductID 历史价格的 JSON 数据类型。
在某些情况下,我需要产品的完整数据历史记录,因此我只需获取整个 JSON 并显示以供报告。有时我需要一个特定的日期或产品历史价格范围,所以我想我只会从 JSON 中获取历史数据并寻找神化的“PriceChangeDate”。 这也可以让我节省大量的日常插入,相反我需要使用产品的新数据更新 JSON。
你们如何看待这种保存历史数据的方法?
【问题讨论】:
-
不,我不明白你为什么要这么做。只存储日期和价格有什么问题?
-
我说的是价格每天都在变化的情况,我需要保存带有变化日期的历史价格。
-
为什么一定要json。您可以,只需尝试 5.7 即可。我不会。主要是因为我确信它的扩展性也不会那么好,而且可调整性也较小。但是去吧。
-
只是在寻找一种能够将每个新的价格变化保存在同一行中而不是每次价格变化都创建一个新行的方法。它可能是 JSON 或其他什么?
-
是的。我也是。每次都换新行有什么问题?
标签: mysql mysql-json