牙科诊所数据库设计 - 牙齿问题
Posted
技术标签:
【中文标题】牙科诊所数据库设计 - 牙齿问题【英文标题】:Dental clinic database design - teeth problem 【发布时间】:2020-09-22 12:15:15 【问题描述】:我正在为我的大学牙科诊所数据库项目的设计部分苦苦挣扎。我将为医生准备一张桌子,为患者准备一张桌子,一张用于可能的治疗方法以及他们的价目表,现在是预约部分。
因此,基本上您应该能够指定给定的患者给给定的医生对给定的牙齿进行给定的治疗。您可以治疗一颗或几颗牙齿。您也可以对一颗牙齿进行多种治疗。之后您应该能够对这些牙齿进行简单有效的 SQL 查询。
所以就我的想法而言,我可以将牙齿编号留给医生,并在预约表中为牙齿创建一列。但是医生可能会犯错。或者我可以为只有一列的牙齿创建一个新表,例如tooth_id,但这对我来说不是最好的解决方案。
齿数: 11, 12, 13, 14, 15, 16, 17, 18, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 41、42、43、44、45、46、47、48。
你会怎么做? 我在 mysql 工作,只是提一下。
【问题讨论】:
我可以把牙齿编号留给医生,然后在预约表中为牙齿做一列。但是医生可能会犯错。制作类似于标准牙齿方案/布局的可点击图片,而不是数字输入框。 是的,这将是某种解决方案,但我们应该在纯 *SQL 中完成所有操作 在 MySQL 中,您可以使用 ENUM(如果您需要每表行一颗牙齿)或 SET(如果可以使用一组牙齿,每行从一颗牙齿到全部 32 颗牙齿)。 问题是什么?做什么来完成给定什么? 【参考方案1】:患者表、医生表、牙齿表和威胁表。 然后,一个医生可以有很多客户(1:N),甚至(N:M),病人是否可以有其他医生,由您决定。患者 1:N 有牙齿;和牙齿威胁很好,我不知道这是怎么回事。
但是是的,我会制作一个只有牙齿 id 和威胁的外键的表。
【讨论】:
【参考方案2】:我会以医生为中心:表医生将包含所述医生的可用性,因此 DOCTOR_PK 将具有预约的时间范围、医生 ID 和患者 ID(当然,如果存在,它可以为 null 和 FK)。
Patient 可以充当多对多关系中两个域表之间的连接表:TREATMENT_TYPE 和 TEETH。
此时,医生会知道,在给定的时间范围内,会有一个需要这个和那个的病人。
PS:这是一个通用结构,如果有更具体的要求,它可能会变得更复杂
【讨论】:
以上是关于牙科诊所数据库设计 - 牙齿问题的主要内容,如果未能解决你的问题,请参考以下文章