2016-07-29 4 views
0

Я довольно новичок как для Meteor, так и для MongoDB. Я создаю основное медицинское приложение, которое помогает управлять небольшой клиник. Таким образом, одна из его функций - отображать информацию пациента.Эффективный дизайн базы данных 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

Кажется, что вложение хорошо подходит здесь, потому что пациенты имеют индивидуальные отношения с данными профиля и историей болезни, поэтому внедрение не приведет к дублированию. В общем, основная идея внедрения заключается в том, что вы можете в одном запросе получить доступ к информации, которую обычно обрабатывает ваше приложение. Пока вся информация, которую вы поместили в документ, требуется каждый раз, когда вы получаете пациента, схема в порядке, иначе вы можете рассмотреть возможность размещения ее в отдельных коллекциях.

+0

@wiredfordesign Для решения будущих проблем вам следует обратиться к официальным документам MongoDB: [Model Relationships Between Documents] (https://docs.mongodb.com/manual/applications/data-models-relationships /). – sonlexqt