我给出了医院用来收集病人信息的表格的硬拷贝!表单分为几个部分,每个部分都有很多是/否复选框。
例如,其中一个部分是历史记录部分,其中包含超过20个无关的是/否字段:
吸烟者(是或否)糖尿病(是或否)
慢性肺病(是或否) 。 。 。 。
另一部分是“压力测试数据”部分,其中包含以下问题:
标准测试(是/否),如果是,结果是什么(阴性或阳性), 如果是正面的(范围是什么(低或高,或中间)
...
我被要求设计一个数据库,显示关系表及它们之间的关系! :S:这看起来不像我遇到的“学生级数据库”或“CD公司数据库”!这只是......我不知道.DYNAMIC:s:s
我没有IDEA如何开始设计这个数据库,或者我应该阅读或研究或实践的内容,以便为这样的数据设计数据库!
请帮助!!
答案 0 :(得分:4)
答案 1 :(得分:3)
查看EAV (Entity Attribute Value) Database Design计划。
您不必专门用于动态数据。它会使您的查询中的一部分变得有趣吗?是。但是购买了令人难以置信的灵活性。顺便说一下,我已经成功地将EAV方案用于了几个EHR / EMR项目。
答案 2 :(得分:1)
有两种基本方法可以做到这一点。在任何一种情况下,您都会有患者表,其中包含患者的身份证号码,姓名以及可能的联系信息。
然后,您可以在此表中添加列(即吸烟者列为1表示是或0表示否),您可以添加与患者的每个属性对应的一大堆列。< / p>
另一个(更好的是,恕我直言)将单独留下患者表,然后添加属性表。属性表将包含patientID,attributeName和attributeValue列。因此,对于吸烟者,您将获取患者ID并在(id,“吸烟者”,1)的属性表中添加一行并继续添加。然后你必须编写查询以从属性表中获取有关给定患者的所有信息,但那是另一个挑战......
答案 3 :(得分:1)
看看Martin Fowler的“分析模式”。他在为医疗保健系统解释一些不错的对象模型方面做得很好。我认为它也可能会给你一些关于数据模型的好主意。
从对象开始,其余的将跟随。
答案 4 :(得分:0)
在关系数据库中继续设计之前,试着想象一下它是否易于维护。在实践中,许多这类系统试图破坏关系模型 - 这是非常经典的情况,你有表格,每个表格都有字段,没有字段彼此相关,每个病人都有表格和字段的副本等等。
我非常喜欢这种关系模型。查看Couch DB等项目,这些项目是以文档为中心的数据库,而不是您用于查看表格和模式等的模式。
围绕CouchDB,Mnesia或其他非关系型数据库。获取一本关于这一主题的书,找到以惯用方式设计这些系统的最佳方法。
在实践中,这些类型的系统就像实体属性值数据库,除了可以很好地搜索索引。
答案 5 :(得分:0)
“动态”是什么意思?好像你有一套关于患者存储的相当标准的数据。我给你的建议是对这些数据进行建模:患者及其属性。不要试图模拟问卷。用于收集数据的方法无关紧要,表单设计与数据库设计无关。