【问题标题】:Atomicity of field for part numbers零件编号的字段原子性
【发布时间】:2011-03-09 09:20:04
【问题描述】:

在我们的内部库存应用程序中,我们存储了三个值(在单独的字段中),这些值成为以这种格式打印的“部件号”:PPP-NNNNN-VVVV(P = 前缀,N = 编号,V = 版本)。

例如,如果您有零件 010-00001-01,您就知道它是“010”类型零件的版本 1(假设是印刷电路板)。

因此,在创建零件工程的过程中,希望通过在多个前缀中保持“数字”组件(中间 5 位)相同来将零件组合在一起,如下所示:

001-00040-0001 - Overall assembly
010-00040-0001 - PCB
015-00040-0001 - Schematics

这似乎有问题且令人沮丧,因为它有时会为“数字”字段添加额外的含义(但不一致,因为并非所有具有相同“数字”组件的部分都必须链接)。

我是一个纯粹主义者还是这样好吗? 1NF 在原子性方面非常模糊。我想我主要是因为额外的逻辑来确保整个零件编号的下一个“数字”部分是有效的并且可用于所有前缀。

【问题讨论】:

    标签: database database-design normalization


    【解决方案1】:

    根据我的经验,无论数据库规范规则如何,当客户/客户/用户希望以某种方式完成某事时,很可能是有原因的,而这个原因会为他们省钱(以某种方式)。有时,它会通过减少步骤、降低培训成本或仅仅因为这就是它一直以来的方式来节省资金。不管是什么原因,最终你都会这样做,因为他们付钱来完成它(除非它违反了会计规则)。

    在这种情况下,这听起来像是某些报表查询的额外排序标准,以及具有自动递增键的新“分配编号”表。这对我来说听起来还不错。找个时间问我关于数据库报告的问题,一位客户 VP 严格委托他以一种使其他 VP 在会议中看起来很糟糕的方式来投射数据(并不是他事先告诉我的)。

    【讨论】:

      【解决方案2】:

      已经有许多企业因“零件编号综合症”而倒闭或几乎倒闭。您也许可以找到一些案例研究。 DEC part numbers 有点搞混了。

      客户并不总是对的,但客户永远是客户。

      在这种情况下,在我看来,工程学正试图使用​​单个数字来模拟关系。我的意思是整体组装、PCB 和 Scematics 之间的关系。最好将关系建模为关系。它使您在以后的道路上更加灵活。在这一点上,您可能很难推销工程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-09
        • 2022-01-05
        • 2021-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-16
        • 1970-01-01
        相关资源
        最近更新 更多