我正在考虑使用 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。
你们如何看待这种保存历史数据的方法?