我有一个表单,用户提交不同的字段来创建事件.请求的字段数量和类型在每个表单上都有所不同,具体取决于事件的类别.设计此数据库的最佳方法是什么 - 如果事件包含所有可能的字段并且只是将未使用的字段置空?谢谢!
我正在设计一个健康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
Run Code Online (Sandbox Code Playgroud)
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 …Run Code Online (Sandbox Code Playgroud)