2016-07-29 14 views
0

私はMeteorとMongoDBの両方にかなり新しいです。小さな病院を運営するのに役立つ基本的な医療アプリケーションを構築しています。その機能の1つは、患者の情報を表示することです。効率的なMongoDBデータベース設計

データベースの構造を最適化する方法がわかりません。私が持っているものが非効率的であるかのように感じます。

first_name: 'Andrew', 
middle_name: 'Baines', 
surname: 'Bernard', 
sex: 'Male', 
age: '40', 
dateAdded: new Date(), 

contacts: { 
    // mobile no, email etc 
}, 

work: { 
// company, position etc 
}, 

insurance: { 
    // insurance details 
}, 

next_of_kin: { 
// name, phone no, etc 
}, 

medical_history: { 
    significant_illnesses: [ 
     // illnesses 
    ], 
    significant_surgeries: [ 
     // surgeries  
    ], 
    allergies: [ 
     // allergies 
    ], 
    current_medication: [ 
     // medication 
    ] 
} 

このデータを構造化する最も効率的な方法は何ですか?彼らはすべて同じコレクションに入れるべきですか?

+0

単一の文書の一部としてそれらを持つことをお勧めします。 –

+0

すべての個人情報をプロファイルフィールドに保存する必要があります。 残念です。 –

答えて

1

患者はプロファイルデータと病歴と1対1の関係を持っているため、埋め込みは重複を招くことはないと思われます。一般に、埋め込みの主な考え方は、アプリケーションが通常処理する情報に1つの要求でアクセスできることです。あなたが患者になるたびにドキュメントに書いたすべての情報が必要である限り、スキーマはOKです。そうでなければ、それを別々のコレクションに入れることを検討することができます。

+0

@wiredfordesign将来の問題を解決するには、MongoDBの公式ドキュメントから参照する必要があります。[モデル間のモデル関係](https://docs.mongodb.com/manual/applications/data-models-relationships /)。 – sonlexqt

関連する問題