我正在设计一个健康 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)
},
}
这就是我到目前为止所拥有的。除了一般意见(欢迎所有)之外,我想知道是否有人认为我应该将每位患者的所有事件和就诊记录在一份文件中,而不是每次就诊一份文件(以上应该是这样)。我相信文档可能会变得“太大”(不知道太大在基于文档的数据库中意味着什么)并且视图几乎总是基于访问 - 尽管我们还需要显示跨访问的趋势报告.
提前致谢!!
麦克风