数据产品--及其历史价格的最佳组织方式是什么?[非公开]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据产品--及其历史价格的最佳组织方式是什么?[非公开]相关的知识,希望对你有一定的参考价值。

我有一些问题要解决,希望你能帮我。我想存储价格变化的历史。我有模型产品(每次买东西我都会把它添加到我的仓库里--名称、价格、数量等等),我也想得到最后一次添加的价格--如何用正确的方法解决?要有最后的价格,价格变化的历史,并且是DRY。因此,即

仓库有很多产品(有数量)

产品有多种价格

我也有膳食食谱,我想知道实际的食物成本(使用最后添加的价格),我想有历史,给定的膳食或产品花费我30美元几个月前,今天它花费我40美元......。

有什么办法吗?

答案

你会希望有多个维度。我建议为产品的当前状态建立一个表,每次价格变化到最新的价格时,这个表都会更新。同样的更新将在另一个表中创建一个新的行,它只是存储对价格的变化,第三个表为膳食信息。这将存储所需的数据,但你仍然需要做一些查询来连接这些表,以获得餐食信息。

PRODUCT_TABLE (one line for each product)
  PROD_ID (primary key)
  PROD_INVENTORY_QUANTITY
  PROD_PRICE_CURRENT  
  PROD_UPDATE_TIMESTAMP

PRICE_CHANGE_TABLE (many to one relationship to PRODUCT_TABLE)
  CHNG_ID
  CHNG_DATE
  CHNG_PRICE_FROM
  CHNG_PRICE_TO
  PROD_ID (foreign key)

MEAL_TABLE  (one to many relationship with PRODUCT_TABLE)
  MEAL_ID
  PROD_ID (foreign key)
  PROD_QUANTITY_NEEDED (amount needed for meal would be multiplied by current price for the current cost and joined to the change table with with a date to get past price then summed up with a group by for the meal total)

以上是关于数据产品--及其历史价格的最佳组织方式是什么?[非公开]的主要内容,如果未能解决你的问题,请参考以下文章

组织地理参考数据的最佳方式是啥?

在关系数据库中存储(和访问)历史 1:M 关系的最佳方式是啥?

智能合约不断听取价格信息并在达到价格后立即执行的最佳方式是啥?

以非编程方式处理 SQL Server 数据的最佳方式是啥?

为自定义 Laravel 包提供数据的最佳方式是啥?

什么是数据仓库及其特点与组成