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