所以我正在为我妹妹做一个网络应用程序,因为她最近获得了 dentry 学位。
虽然我在数据库设计方面遇到了一些困难......
我显然应该有一个约会表 (tbl_appointment),约会可能有与之关联的治疗,并且这些治疗都有不同的属性(列)。
所以我想我应该有一个 tbl_appointment 和一个 tbl_treatment,我不确定如何链接这些表以具有多种治疗类型、不同的治疗参数并保存与预约相关的治疗数据。
您认为解决此问题的好方法是什么?我已经画出了一些东西,但它看起来肯定不太好,因为我最终为每种治疗类型准备了一张 table ,我认为这不是最好的解决方案。
编辑
由于这还不够清楚,下面是我的实际数据库的屏幕截图。
如果我像做牙周图一样实现治疗,我最终会得到 20 个表格,每个表格对应一种治疗类型。我想避免这种情况!
编辑
@Ian Kenney,所以如果我理解你的建议,那么我们正在讨论的数据库部分应该是这样的......
我说的对吗?不要注意关系类型,因为它们都是 1:1,我知道我应该在那里使用一些 M:N,但这只是为了示例。
最佳答案
针对各种治疗类型的一种方法是查看它们之间的共同属性,例如它可能包括:
- 姓名
- 描述
- 价格
- time_required
这些成为tbl_treatment的列
然后为其他(治疗特定的)属性 tbl_treatment_attributes 使用一个额外的表,其结构如下:
- 治疗编号
- 属性名称
- 属性值
每个处理可以有许多额外的属性,可接受的属性(包括默认值)可以在 tbl_treatment_defaults 中管理
- 治疗编号
- 属性名称
- 字段类型
- 验证
- 默认值
编辑
+-------------------+ +--------------------+
| 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 |
| ........ | | ....... |
+--------------------------+ +------------------------+
关于牙医应用程序的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21616547/