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

问题描述 投票:-2回答:1

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

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

产品有多种价格

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

有什么办法吗?

ruby-on-rails database
1个回答
1
投票

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

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)
© www.soinside.com 2019 - 2024. All rights reserved.