2016-07-20 17 views
0

私は地元の蒸留所の生産制御アプリケーションを開発しています、と私は、データベースを構築する問題を抱えています。最適なデータベース構造

コア機能は、精神の種類を作成するユーザーの能力があり、これらの型はすべて、関連する生産プロセスを持っています。各プロセスは複数のステップを持つことができます。 7つの異なるタイプのステップがあります。

ユーザーは、いくつかの精神の「バッチ」を作成すると、精神のタイプが選択され、ユーザーが定義した生産プロセス以下の「ウィザード」が表示されます。各ステップで、ユーザはそのステップに関連する情報を入力する。私が思い付いた何

は、この多対多の関係だった:それはデータを埋めるに来たときに、これは精神のタイプの作成のために働いている間

spirits (spirit types) 
- id 
- name 

steps (steps in the production process) 
- spirit_id 
- state_id 

states (names of all possible steps) 
- id 
- name 

、それが欠けていました。製造プロセスステップの各ステップは異なるデータを取ります:

distillation 
- abv 
- mass 

dilution 
- abv 
- water 

filtration 
- density 
- volume 

この種のアプリケーションに最適な構造は何でしょうか?厳しい仕様のないデータモデリング( -

+0

は、私はSQLを愛する..意見ベース領域ですが、それはモンゴまたはいくつかの他のNoSQLデータベースの問題だように、あなたが本当に記述していることに聞こえます。私はいくつかの成功とモンゴーを使用し、それは私の経験でうまく動作します。私はJavaで作業しています。その言語でMongoと作業するための高品質なリソースがたくさん見つかりました。私は状況がほとんどの主要言語で似ていると仮定します。 (これはプラグインではない、と私はほとんどの事のためにSQLを使用して好む。) – Jeutnarg

+0

私はこれらのセットアップのためのキー/値のペアを使用します。それは最もスケーラブルではありませんが、あなたが数百万のプロセスを持たなければ、それはうまくいくはずです。名前値のペア、キー値のペア、属性値のペア、EAV ....同じものへのすべての参照。多くの開発者はこれを選択しません。別のシナリオ:http://stackoverflow.com/questions/19458613/sql-vs-nosql-for-data-that-will-be-presented-to-a-user-after-multiple-filters-ha – Twelfth

答えて

1

すると、プロセスとstess間のマスター/詳細関係を管理するために私のためにあなたには、いくつかのテーブル数を使用する必要があります。..手順

activity (class of steps in the production process) 
- activity_id 
- name 

process_phase (master table for process steps) 
- process_phase_id 
- description 
- activity_id 
- spirit_id 

process_phase_detail (detail table for process step) 
- process_phase_id 
- detail_id 
- state_id 

PSのこのsimilareするクラスを関連付けます)

関連する問題