【问题标题】:in theory: would this be possible: SQL query for efficient use of build parts理论上:这可能吗:SQL 查询以有效使用构建部件
【发布时间】:2013-10-21 22:51:55
【问题描述】:

我有几个表格,为了这个例子,我已经把它们简化到了极致。

表 1,“单位”

ID    UnitName    PartNumber
1     UnitX       1
2     UnitX       1
3     UnitX       2
4     UnitX       3
5     UnitX       3
6     UnitY       1
7     UnitY       2
8     UnitY       3

表 2,“零件”

ID    PartName    Quantity
1     Screw       2
2     Wire        1
3     Ducttape    1

我想在这些表上查询哪些单元可以建造,如果可以,最好先建造哪一个以有效利用这些部分。

现在的问题是:这可以使用 SQL 来完成,还是需要后台应用程序/更高效?

所以在这个例子中,这很容易,因为只能建造一个单元(单元 Y)。但我想你明白了。 (我不是在寻找一个摇晃和烘烤的答案,只是你对此的想法。)

谢谢

【问题讨论】:

    标签: sql theory


    【解决方案1】:

    正如您所介绍的,使用 sql 是有效的。正如您所描述的,表 Units 的 PartNumber 列是 Parts 表的 ID 列上的外键,因此简单的外连接或选择 PartNumber 为“NOT IN”的单元将为您提供无法构建的单元。

    但是,如果您的数据库架构由许多非规范化表组成,或者没有索引非常复杂,其他“坏”的事情等 可以检查特定应用程序代码是否更快。但我真的怀疑它的特殊情况,查询似乎微不足道。

    【讨论】:

    • 您好,感谢您对此的看法。
      这确实很容易用于平面检查哪些可以在某个时间点构建。
      但是:可能可以制作多个“单元”,只有一些使用更多的部分。我需要一种方法来减去剩余部分的数量,以确定剩下的要构建的部分。 (因此,什么单位最好从充分利用库存开始(例如,哪种方法留下的剩余零件最少))
    • 这需要应用程序逻辑。因为除其他外,您需要灵活地修改您确定充分使用库存的标准。例如,您首先检查如何构建大多数部件,但稍后您为部件添加优先级/重要性并且您想要更改该逻辑或某些部件可能需要先构建其他部件等。无论如何,您应该打破放下事情并专注于以最有效的方式实现系统的每个部分,例如仅使用应用程序逻辑、sql 或混合。
    猜你喜欢
    • 2011-04-07
    • 2011-09-05
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2022-10-30
    • 2012-04-19
    相关资源
    最近更新 更多