私は科学コラボレーション Web サイトのシステムを設計しています。基本的に、研究テーマごとにさまざまなデータ モデルが存在します。列、フィールド タイプ、列数、マッピング、および構造が異なります。既存の各データ モデルは、他の人が再利用することもできます。
シナリオの例: 科学者が来て実験タイプ A を設計すると、データ モデルが作成され、データの入力が開始されます。その後、実験タイプ A のデータ モデルが保存され、再利用でき、他の人がこのモデルを選択できます。 A 再設計せずにデータを入力します。同様に、科学者は好きなデータ モデルを設計できます。
例えば:
実験タイプ A の構造は次のとおりです。
-Hypothesis(String target1,String target2, int number1,int number2)
-existingwork(String target1,string target2) //(maps to Hypothesis table)
-Cohorts (int number1,int number2)
-male //(maps to Cohorts table)
-female //(maps to Cohorts table)
-Results (String result1,String result2)
実験タイプ B の構造は次のとおりです。
-Hypothesis(BigInt bigint,String name,String target)
-feedback(String feedback) //(maps to Hypothesis table)
-comments(String comment,Date date) //(maps to Hypothesis table)
-ExperimentTarget (int number1,int number2,int number3)
-Healthy //(maps to Cohorts table)
-Unhealthy //(maps to Cohorts table)
-Impact (int impackFactor)
-Conclusion(String conclusion,Date date)
これを実装する最適な方法は何でしょうか? 実験の種類ごとにスキーマを作るとなると、重すぎると思いませんか。
Nosqlのアプローチを考えてみたのですが、マッピング部分が難しそうです(例:タイプAで「既存の仕事」を「仮説」にマッピングする)。
http://neo4j.org/などのグラフデータベースはどうですか?これでうまくいきますか?
皆さん、アドバイスください!ありがとう