如何在PostgreSQL中添加多对一关系

时间:2009-05-14 20:40:04

标签: postgresql one-to-many

我有两张桌子:“Stock Master”和“Stock In”,我如何在它们之间建立多对一的关系? “Stock In”按不同的日期和数量记录许多不同的股票,但是“Stock Master”必须显示并将相同的股票与其数量合并为一个,并且必须作为先进先出。

3 个答案:

答案 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