MongoDB模式来跟踪转换和日志进程

2024-10-06 13:53:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用更加灵活的MongoDB重新设计一个非常规范化的数据库。当前的问题是,现有的结构不支持在不广泛更改MySQL模式的情况下实现的新进程。MongoDB的理念似乎对业务的未来更有意义,而不是修改现有的系统。你知道吗

业务规则如下:

必须跟踪原材料。有关这种原材料的日志将在分析的基础上制作。 一种原材料将被加工并转化成一种成分。必须保留有关此多步骤转换的日志。 组件将被加工成零件。必须保留有关此过程的日志。 零件可以在部件中使用。 零件或组件可以运送给客户。 而且,对于不同的材料,完成转化的工艺系统是不同的。此外,在发现优化过程的情况下,它需要是动态的。你知道吗

收藏和文件:

  • 系统-一组过程
  • 流程-系统的子文档,每个系统将有多个流程
  • 日志-带有时间戳的信息日志,包括机器或操作员记录的数据和事实。日志将有不同的类型,这取决于它们应用于的进程。每个日志条目都将链接回上面的一个进程和组件。你知道吗
  • 原材料-跟踪原材料中的项目
  • 组件-跟踪已从原材料转换为组件的项目
  • 零件-跟踪从组件或原材料转换而来的项目

我的问题是关于父母和孙子对象之间的关系。我是否应将它们与子文档包含在同一文档中,即(孙子代表零件):

parent(Raw material): {
    name: 'parent item'
    desc: 'parent desc'
    child(component from raw material processed): [
         {
         name: 'child name'
         desc: 'child desc'
         child-property: 'some property'
         grandchild(a part): [
               {
               name: 'grandchild'
          },
            {   name: 'grandchild2'}
           ]
          },
        {
         name: 'child name 2'
         desc: 'child desc 2'
         child-property: 'some property 2'
         grandchild: [
               {
               name: 'grandchild of 2'
          },
            {   name: 'grandchild of 2 - 1'}
           ]
          }
}

我预计会有大量的孙子孙女,最好的办法是什么?你知道吗


Tags: 项目name文档child进程过程mongodb系统