【问题标题】:How to add many-to-one relationship in PostgreSQL如何在 PostgreSQL 中添加多对一关系
【发布时间】:2009-05-14 20:40:03
【问题描述】:

我有两个表:“Stock Master”和“Stock In”,如何在它们之间创建多对一关系? “Stock In”记录了许多不同日期和数量的不同库存,但“Stock Master”必须显示并将相同的库存及其数量合并为一个,并且必须具有先进先出的功能。

【问题讨论】:

    标签: postgresql one-to-many


    【解决方案1】:

    听起来多对一并不是你真正需要的。

    如果我理解正确,您的库存会在不同时间进入不同类型。您想记录收到的货物,您想查看您有多少特定类型的货物,并且您希望能够识别最早收到的批次,以便您可以优先考虑运送。

    大大简化了,您只需要一张记录已接收货物的表格,其中包含一个接收时间和日期列,您可以调用 WHERE 子句来确定哪个条目是最旧的,因此应该发货。

    您不需要这样的表格来汇总库存(暂时忽略物化视图等选项)。只需对数量列求和;按产品类型分组。

    【讨论】:

    • 是的!这就是我要的!有谁知道如何在 postgresql 中做到这一点?
    【解决方案2】:

    如果您想在 Postgresql 中创建一个视图(就像您对 JosefAssad 的建议所做的评论一样),就像在几乎任何其他 SQL 数据库中一样,请使用以下内容:

    CREATE VIEW Stockmaster (prodid, total)
      AS SELECT prodid, SUM(quantity)
      FROM Stockin
      GROUP BY prodid
    

    【讨论】:

      【解决方案3】:

      除非我在这里遗漏了什么,否则您可以使用适当的主键/外键关系来处理这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多