我有一个包含以下详细信息的数据库:
产品
Name
SKU
UOM (There is a UOM master, so all purchase and sales are converted to base uom and stored in the db)
Some other details
has_attribute
has_batch
属性
Name
Details/Remarks
产品-属性
Product (FK)
Attribute(FK)
Value of attribute
广告资源详情
#This is added for every product lot bought & quantity available is updated after every sale
Product (FK)
Warehouse (FK to warehoue model)
Purchase Date
Purchase Price
MRP
Tentative sales price
Quantity_bought
Quantity_available
Other batch details if applicable(batch id, manufactured_date, expiry_date)
广告资源分类帐
#This table records all in & out movement of inventory
Product
Warehouse (FK to warehoue model)
Transaction Type (Purchase/Sales)
Quantity_transacted(i.e. quantity purchased/sold)
Inventory_Purchase_cost(So as to calculate inventory valuation)
现在,我的问题是:
我需要找出历史库存成本。例如,让我们说我需要在2017年2月10日找出库存的价值,我现在对目前的表做的不是很有效:我会找出当前的库存和返回所有1000-1500 SKU的分类账,每天约100笔交易(每个sku)超过120天,并达到一个价值。大约1500 * 100 * 120。这是巨大的。是否有更好的数据库设计来处理这种情况?
答案 0 :(得分:0)
首先,你测试过吗? 1500 * 100 * 120不 巨大。它可能是可接受的性能,没有问题需要解决!
我不是100%清楚你如何计算价值。您是否总结了每个仓库中每个产品的InventoryLedger行?是这样,很容易为购买增加价值,但您如何看待销售?我将假设您使用Inventory_Purchase_Cost来估算销售额(因此它可能应该被称为TransactionValue)。
如果您必须对其进行优化,我建议您每天填写一份记录,以便对每个仓库中的产品进行评估。我建议每天可以填充以下StockValution表,这样可以快速计算任何历史日的估值。
使用QuickDBD制作的图表,我工作的地方。