概括工单

时间:2016-12-27 14:15:24

标签: sql performance database-design maintainability

Hello stackoverflowians,

我正在设计工作单的表格。

问题:

  • 有不同的 工单模型 (从现在开始称为 WOM
  • WOM共享一些属性(Num,Date,Description,...等)
  • WOM的详细信息如下:
    • 工作完成的部门。
    • 有些WOM使用储罐代替扇区(产品在储罐中准备)。
    • 产品及其数量(加上或没有产品信息)适用于该行业。
    • 人力资源部门曾在WO工作过。
    • 工单上使用的材料
    • ...... etc

需要什么

  • 工作单的设计表和c的详细信息。
  • 他们想知道如何花费资源。
  • 设计查询以检索所有形状的信息。

约束

  • 最终用户的简单演示。
  • 概括工单模型。

做了什么

将所有工单及其详细信息设计为层次结构,从工单号作为母节点开始。

WorkOrderTable (ID, ParentID, Type, Value)

工单Transform hierarchical data into flat table

的示例
ID  ParentID    Type        Value
38  0           Num         327
39  38          Sector      21
40  38          Sector      22
43  40          Product     NS
44  40          Product     MS
50  40          Temp        RAS
48  44          Quantity    60
47  43          Quantity    25
41  39          Product     ARF
42  39          Product     BRF
49  39          Temp        RAS
51  39          Cible       Acarien A.
46  42          Quantity    30
52  42          Cible       Acarien B.
45  41          Quantity    20

问题

我做得好/高效易于与maintien合作或有其他想法吗?

更新I:更多细节

  • 产品不会改变约50个活跃产品[产品随时间变化,需要跟踪版本]
  • 行业约40个(固定土地面积)
  • 人们正常的HR表
  • 典型的WOM有多大:
    • 大约15个属性(其中3个属于mportante并由所有WOM共享,其他属性稍差)
    • 约5个或更多细节共享:产品,部门,人员和其他描述产品数量的信息。
  • WOM现在已经搞定了,但是我担心它们将来会发生变化(或者是新的变化)
  • 版本控制现在不是一项要求,但添加它是一个加号。
  • 我打算为参与者(部门,产品......)使用不同的表格
  • 元数据/数据混淆是这种设计困境的意义所在。
    • 认为任何WOM由3部分定义:
    • 工作订单一般信息(Num,Date,...)
    • 部门[其他WOM使用坦克存储]工作完成。
    • Ressources完成工作产品,人员,机器......
  

设计状态

     
      
  • 参与者部门,人员,机器的具体表格......
  •   
  • 元数据表(ID,元数据,lvl)。示例:

         
        
    • Sector,1(直接向WO)
    •   
    • Tank Storage,1
    •   
    • 产品,2(可以是不直接向WO部门工作的一部分)sd
    •   
  •   
  • 工作订单表(ID,parentID,metadataID,valueID)值ID来自参与者表

  •   

关于XML我没有关于如何存储和操纵它们的信息。

2 个答案:

答案 0 :(得分:0)

我认为如果你在寻找设计建议,你应该去一个元堆栈组,即code review exchange

话虽如此,您在寻求设计方面的建议,但仅提供抽象信息。在设计中需要考虑系统的规模,预期的CRUD的数量以及其他一些因素。没有得到细节和目标,很难回答你的问题。有不同方法的权衡。甚至可能建议使用nosql solution

话虽这么说,我建议不要建立自己的ERP系统,而是从供应商处购买一个特定于行业的系统,然后将自定义应用到它。

编写自己的系统,保持更新,增加安全性以及许多其他功能非常昂贵,这使得在从软件供应商处购买时做出商业决策是值得的。

如果你只想通过写这个来获得更多经验,我会建议浏览github,以及之前提到的堆栈交换。

答案 1 :(得分:0)

在不知道任何数字和进一步了解您的需求的情况下,没有任何好的建议是可能的。这是我脑海中的一些问题

  • 有多少用户?
  • 有多少产品/地点/行业/人......?
    • 这是不断变化的数据?
  • 多少个WOM?
  • big 是一个典型的WOM?
  • 它是一个普通的树层次结构
    • 如果没有:可能有替代路线,圈子,岛屿?
  • 这些WOM是修复还是改变了?
    • 如果更改:您需要版本控制吗?

看起来试图重新发明一个专业的ERP系统。正如Bostwick已经告诉过你的那样,你应该考虑使用现有的......

只是一些一般提示:

  • 不要对(元)数据使用WOM存储(只有ID / 外键
  • 尝试在工作数据和元数据之间绘制清晰的边框
  • 为每个参与者(行业,产品......)
  • 使用专用表格
  • WOM可能更适合放在XML中
  • 了解(Finite) State Machines
  • 了解state pattern
  • 了解Business-Process-Modelling和工作流程