我有两张桌子:“Stock Master”和“Stock In”,我如何在它们之间建立多对一的关系? “Stock In”按不同的日期和数量记录许多不同的股票,但是“Stock Master”必须显示并将相同的股票与其数量合并为一个,并且必须作为先进先出。
答案 0 :(得分:1)
这听起来并不像你真正需要的多对一。
如果我理解正确,您会在不同类型的不同时间进入库存。您想要记录已经发生的事情,您想要查看您拥有的特定类型的多少,并且您希望能够识别最早收到的批次,以便您可以优先考虑发货。
大大简化了,你只需要一张表记录收到的货物,并附上收到时间和日期的栏目,你可以打电话给WHERE条款,以确定哪一项是最早的,因此应该发货。
您不需要用于聚合库存的表格(忽略物化视图等选项)。只需加上数量列;按产品类型分组。
答案 1 :(得分:0)
除非我在这里遗漏了一些东西,否则你可以通过使用适当的主/外键关系来处理这个问题。
答案 2 :(得分:0)
如果你想在Postgresql中创建一个视图(就像你从评论到JosefAssad的建议那样),就像几乎任何其他SQL数据库一样,使用类似的东西:
CREATE VIEW Stockmaster (prodid, total)
AS SELECT prodid, SUM(quantity)
FROM Stockin
GROUP BY prodid