【发布时间】:2013-11-16 19:28:33
【问题描述】:
我正在 Access 上建立一个数据库,其中包括跟踪谁将患者转诊到我们的办公室(我在一家验光师办公室工作,从事专门的治疗)。
我没有太多创建关系数据库的经验,我想知道我的方向是否正确。在这里发帖之前,我已经向我的 5 位计算机程序员朋友寻求帮助,但突然每个人都很忙……所以就这样吧。
1 位患者可以有多个转诊
- 我儿子的老师和我的同事把我介绍到这里(2 次介绍 来源)
- 我的医生告诉了我关于你的事,然后我看到了你的网站(2 指 来源)
1 推荐可以包括:
- 个人(Blah-Blah 博士,或我的朋友 Jane Doe)
- 一个组织(Doctors Group)
- 属于组织的个人(Doctors 的某某博士) 组)
- 媒体来源(网站、小册子、商业广告、电视节目等)
通常无法确定组织中的哪个人转介了患者(因为患者不记得了),因此只记录组织。但有时它是可能的,所以记录了个人和组织。有时个人不属于任何组织。
这是我想出的部分设计:http://postimg.org/image/uipaq7rrl/
- 患者表
- 引用媒体表
- 存储媒体源的详细信息
- 引用组织表
- 存储组织的名称/详细信息
- 推荐个人表
- 存储个人姓名/详细信息
- 使用 Ref Org ID 作为外键,以防个人是组织的成员
- 推荐表
- 使用患者 ID 作为外键将转诊链接到患者
我应该如何将推荐表链接到 Ref Org、Ref Indv 和 Ref Media 表?
我想出了这样的东西:http://postimg.org/image/qtpoiflmv/
但这似乎是多余的,并且会留下很多空白,具体取决于推荐的类型:http://postimg.org/image/oepj99ohz/
我该怎么办?在这些表之间建立关系的好方法是什么?
【问题讨论】:
-
我在挡住 postimg 的墙后面,所以我看不到您的附件。听起来你的桌子很有意义。您的基本问题是多态行为,因为您有各种作为引荐来源的东西,但又具有其他品质。如果您真的需要所有这些详细信息,那么最简单的方法可能确实是一个包含多个 id 字段的引用表,其中只有一两个字段将被填写——然后您可能会进行查询以整合异构数据。有意义的事情实际上取决于您还需要这些数据做什么。
标签: ms-access database-design schema normalization