小编Mik*_*lee的帖子

帮助在SQL/NoSQL混合中建模EAV(Sql server/RavenDB)

我正在设计一个健康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)

sql sql-server data-modeling nosql ravendb

6
推荐指数
1
解决办法
1117
查看次数

DB 设计帮助 - EAV + 表单生成器

我正在尝试构建一种表单构建器,它允许我以灵活的方式定义、显示和存储“测试”。即允许用户通过 Web 界面创建新类型的测试/表单(“分组”)并定义一组将显示在表单上的字段(任何类型的字段,包括日期、文本、收音机、复选框等)。我还需要一个结果表来存储保存在每个表单/测试中的值。

作为一个不充分的例子,到目前为止我有以下 3 个表:

dd_TestGrouping
- TestGroupingID [pk]  
- TestGroupingName  "Algebra-1"
- TestGroupingTypeID "Math"

dd_TestFields
- TestFieldID [pk]
- TestGroupingID [fk]
- TestFieldName "Circumference"
- TestFieldType "TextBox"
- Sequence

TestResults
- TestResultID [pk]
- TestFieldID [fk]
- value "50"
- Unit "CM"
Run Code Online (Sandbox Code Playgroud)

上面的问题 - 如果没有别的 - 我不确定如何动态显示下拉列表和链接的单选框/复选框。另外,我该如何处理验证?

提前感谢您的任何帮助/指示。

sql database sql-server database-design

5
推荐指数
1
解决办法
1068
查看次数