【问题标题】:What is the optimal way to organise data product - and its history prices? [closed]组织数据产品及其历史价格的最佳方式是什么? [关闭]
【发布时间】:2020-09-22 20:29:11
【问题描述】:

我有一些问题要解决,希望你能帮助我。我想存储价格变化的历史。我已经为产品建模(每次我买东西时,我都会将它添加到我的仓库中 - 名称、价格、数量等)我也想获得最后添加的价格 - 我该如何以正确的方式解决它?拥有最新价格、价格变动历史并保持干燥。所以即:

仓库有_many产品(有数量)

产品有_很多价格

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

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails database


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 2011-06-11
      • 2023-03-16
      • 1970-01-01
      • 2018-06-16
      相关资源
      最近更新 更多