Я занимаюсь разработкой приложения SaaS для здоровья и буду признателен за помощь в первоначальном моделировании.Я начал с этой темы , чтобы подтвердить, что мне вообще следует использовать EAV - ответ был положительным из-за редкости клинических данных.Затем я начал рассматривать возможность использования опции NoSQL вместо того, чтобы пытаться встроить ее в SQL.Кажется, комбинация двух будет работать лучше всего.Я постараюсь объяснить требование и мою идею и буду рад любой обратной связи.Я использую .net.
Требование На самом высоком уровне у нас есть «Пациент».Если бы пациент нуждался в медицинской помощи, что-то должно было произойти, назовем это «Инцидентом».Для каждого «Инцидента» «Пациент» можно увидеть несколько раз, что называется «Посещения».Все клинические данные (тесты / история / и т. Д.) Хранятся за одно посещение.Итак, у нас есть:
Пациент 1 - ∞ Инциденты 1 - ∞ Посещения 1 - 1 Клинические данные (много потенциальных пар ключ / значение)
Решение (обратная связь была бы отличной)
Таблицы SQL
Patient
- PatientID
- other patient info
Incident
- IncidentID
- PatientID
- Other incident info
Visit
- VisitID
- IncidentID
- Datetime
NoSQL DocumentDB (возможно, RavenDB)
{ // Visit document - id: visits/12345
"Patient": {
"PatientId": "patients/54321",
"Name": "John Smith"
},
"Incident": {
"IncidentId": "incidents/55555",
"Name": "Cardiac Arrest"
},
"VisitData": {
"BP": "110/70",
"Hypertension": "True"
"Cardiac Disease": "Angina"
"Stroke": "False"
.... (could be tens or hundreds of key/value pairs)
},
}
Это то, что я имею до сих пор.Помимо общих мнений (все приветствуются), мне было интересно, думает ли кто-нибудь, что я должен поместить все Инциденты и Посещения для каждого пациента в ОДИН документ, а не иметь один документ за посещение (что и должно быть выше).Я считаю, что документы могут стать «слишком большими» (не имея представления о том, что слишком много значит в БД на основе документов), а также почти всегда представления основаны на посещении - хотя нам также нужно показывать трендовые отчеты по визитам.
Заранее спасибо !!
Майк