2

所以我正在为我姐姐做一个网络应用程序,因为她最近获得了牙科学学位。

我在数据库设计方面有点挣扎......

我显然应该有一个约会表(tbl_appointment),约会可能有与之相关的治疗,并且这些治疗都有不同的属性(列)。

所以我想我应该有一个 tbl_appointment 和一个 tbl_treatment,我不确定如何将这些表链接为具有多种治疗类型,具有不同的治疗参数并保存与预约相关的治疗数据。

您认为什么是解决这个问题的好方法?我已经抽出了一些东西,但它肯定看起来不太好,因为我最终为每种治疗类型准备了一张桌子,我认为这不是最好的解决方案。

编辑

由于这还不够清楚,这里是我的实际数据库的截图。

如果我像做牙周图一样实施治疗,我最终会得到 20 张桌子,每种治疗类型一张。我想避免这种情况!

在此处输入图像描述

编辑

@Ian Kenney,所以如果我得到你的建议,这就是我们正在讨论的数据库部分的样子......

在此处输入图像描述

我对吗?不要注意关系类型,因为它们都是 1:1,我知道我应该在那里使用一些 M:N,但这只是为了示例。

4

2 回答 2

1

各种治疗类型的一种方法是查看它们之间的共同属性,例如它可能包括:

  • 姓名
  • 描述
  • 价格
  • time_required

这些成为 tbl_treatment 的列

然后为其他(治疗特定的)属性 tbl_treatment_attributes 使用附加表,其结构如下:

  • 治疗 ID
  • 属性名
  • 属性值

每个处理可以有许多附加属性,可接受的属性(包括默认值)可以在 tbl_treatment_defaults 中管理

  • 治疗 ID
  • 属性名
  • 字段类型
  • 验证
  • 默认值

编辑

+-------------------+              +--------------------+
| tbl_treatment     |              | tbl_treatment_type |
+===================+              +====================+
|*treatment_id      |              |*treatment_type_id  |
|+treatment_type_id |<-------------| treatment_name     |
|  ......           |              | ......             |
+-------------------+              +--------------------+
         |                                   |
         v                                   v
+--------------------------+       +------------------------+
| tbl_treatment_attributes |       | tbl_treatment_defaults |
+==========================+       +========================+
|*treatment_id             |       |*treatment_type_id      |
| attribute_name           |<------| attribute_name         |
| attribute_value          |       | default_value          |
| ........                 |       | .......                |
+--------------------------+       +------------------------+
于 2014-02-07T00:02:15.153 回答
0

tbl_appointment约会表应该只有约会数据和(表中的patientId外键tbl_Patient

您应该有一个名为的第三个表tbl_Visit,其中包含一个外键到tbl_appointment. 然后另一个名为tbl_Visit_treatment的表具有VisitIdTreatmentId。所以这tbl_Visit_treatment是一个多对多关系表,它跟踪每次访问中完成的所有治疗。

至于 TreatmentType(s),它只是一个类型表,tbl_TreatmentTypeID、和字段调用。将是表中的外键。NameCodeDescriptionTreatmentIdtbl_Treatment

于 2014-02-07T00:00:43.990 回答