2017-08-15 4 views
0

私は部品表のミニアプリケーションを構築しようとしています。MongoDBツリー構造複数の親、合計と乗算

下の画像は、1つ以上の部品(100個の数字)またはアセンブリがその下にネストされているアセンブリ(110個の番号)がいくつあるかを示しています。

Bill of materials heirarchy

現在、私のデータは、このように構成されています

collection.insert({'part_project': 998, 
        'part_number': 002, 
        'part_category_prefix': 1, 
        'part_type': 110, 
        'part_description': 'Tier 2 Assembly B', 
        'part_revision': 1, 
        'part_version': 'A', 
        'bill_of_material_usages': [{ 
         'bom_version': 'A', 
         'part_version': 'A', 
         'part_revision': 1, 
         'children': [ 
          {'part_number': '998 1 3 100', 'quantity': 3}, 
          {'part_number': '998 1 4 110', 'quantity': 1} 
         ]}] 
        }) 

部品やアセンブリの子と参照バージョンに関する情報を格納する「bill_of_material_usages」という配列があります。

私は、各アセンブリがすべてのパーツとサブアセンブリをリストしているテーブルでこれを表現する方法を理解しようとしています。

また、部品の合計量をどのように追加するかを検討しようとしています。つまり、アセンブリAがアセンブリBを2つ、アセンブリBがAを3つ持つ場合、合計2 * 3 = 6のパートAが存在します。

これを現在のデータ構造またはより良い構造でどのように行うかに関するアドバイスは素晴らしいことでしょう。

私は現在、MongoDB、Flask、vis.js、およびGoogleのグラフを使用しています。

ありがとうございます!

答えて

0

最後の子に子がもうなくなるまでツリーの子ブランチに続く再帰関数を使ってこれを解決しました。これにより、構造化されたツリーを構築し、個々のパーツのインスタンスの総数を計算することができます。

再帰関数は、可能な再帰の回数によって制限されますが、この制限は私のユースケースには影響しません。

関連する問題