2010-12-07 71 views
3

即时给了医院用来收集病人信息的表格的硬拷贝!该表格分为几个部分,每个部分都有许多是/否复选框。动态数据库设计?

例如,部分中的一个是所述历史记录部分,其具有超过20名不相关的是/否字段:

吸烟者(是或否)

糖尿病(是或否)

慢性肺(是或否) 。 。 。 。 。

另一部分是具有类似下面的问题“压力测试数据”部分:

标准测试(是/否),如果有,是什么结果(正或负), 如果正(什么是(低或高,或中间)

程度...

有人问我设计一个数据库,显示关系表和它们之间的关系:S:S代表是长相没有像“学生级数据库”或“CD公司数据库”i碰到了!这只是..我不知道..DYNAMIC:s:s

我没有想法如何甚至开始设计这个数据库或什么是我应该阅读或研究或实践,以设计一个数据库对于这样的数据!

请帮助!

+0

@Paul:fair'nuff,那只是其中的一个。 – 2010-12-07 19:29:06

+0

@Matt:我知道。我自己有过那些日子。 – 2010-12-07 20:01:24

+0

我看起来这是一个你没有经验的大项目。我建议你去找你的老板,告诉他你从来没有做过这样的工作。我认为在开始时坦率地比展示不起作用的设计更好。你在这里坦率地说,你有“没有想法”,所以在你工作的时候坦率地说。 – 2010-12-07 23:23:00

回答

1

那么有两种基本的方法可以做到这一点。在任何一种情况下,您都会得到患者的病历表,病人的身份证号码,姓名以及可能的联系信息。

然后,您可以在此表格中添加列(即吸烟者列可以是1表示否,或者0表示否),并且您可以添加与患者的每个属性相对应的一大堆列。

其他(和更好的,恕我直言)将离开患者表独自,然后添加属性表。属性表将包含patientID,attributeName和attributeValue的列。因此,对于吸烟者,您需要输入患者ID并在(id,“smoker”,1)的属性表中添加一行并继续添加。然后,您必须编写查询以从属性表中获取关于给定患者的所有信息,但这是另一个挑战...

2

看看EAV (Entity Attribute Value) Database Design方案。

您不必专门使用它,只是为了您的动态数据。它会使你的部分查询变得有趣吗?是。但购买一个令人难以置信的灵活性。顺便说一下,我已经成功地使用EAV方案进行了几项EHR/EMR项目。

0

在继续在关系数据库中进行设计之前,试着设想一下它是否易于维护。在实践中,许多这类系统试图破坏关系模型 - 这是非常经典的情况,你有表单,每个表单都有字段,没有任何字段彼此相关,每个病人都有表单和字段的副本, 等等。

我强烈希望这比关系模型。看看诸如Couch DB这样的项目,它们是以文档为中心的数据库,而不是您习惯使用表和模式等进行查看的模式。

围住CouchDB,Mnesia或其他非关系数据库。找一本关于这个主题的书,找出用惯用方式设计这类系统的最好方法。

实际上,这些系统类似于实体属性值数据库,只是它们可以很好地搜索索引。

1

查看Martin Fowler的“分析模式”。他在为医疗保健系统解释一些不错的对象模型方面做得很好。我认为它也可以给你一些关于数据模型的好点子。

从对象开始,剩下的就会随之而来。

0

你所说的 “动态” 是什么意思?似乎你有一套相当标准的关于待存储患者的数据。我对你的建议是模拟这些数据:患者及其属性。不要试图模拟问卷。用于收集数据的手段是无关紧要的,表单设计与数据库设计没有多大关系。