我正在尝试制作一个Dr-patient预约系统。到目前为止,我有四张桌子: -
Patient:- Doctor:- Appointment:- Availability:-
patientID doctorName time time
name room date doctorName
address patientID
doctorName
所有关系都是1对manys,其中许多方面都来自约会表。
患者: - 患者详细信息表
医生: - 医生详细信息表
约会: - 约会表
可用性: - 存储每位医生的时间段的表
然而这对我来说都是相对较新的东西而且我已经被抛出了。首先,在医生表中,我应该为DoctorID设置一个字段,并将其用作主键而不是医生姓名吗?即使该表中只有少数记录可能。
其次,如果我要在所有表中更改为DoctorID而不是doctorName,我是否仍然可以在需要时轻松访问doctorsName?这部分让我感到困惑,也许我只是在思考这些事情。
我问的原因是,例如说我要制作一份显示出医生ID的预约报告,我应该能够根据关系获得报告的医生姓名吗?同样基于患者ID的患者。
我猜我在表格中也有足够的信息来检查和防止约会冲突。
非常感谢,
答案 0 :(得分:3)
你真的应该使用doctorsid
代替doctorsName
。因为如果你一起计划join
这些tables
,那么join
上的varchars
就更好了。varchar
。
还有一个问题,如果你仍在使用update
解决方案,如果医生改名(婚姻等)会发生什么。您需要 Patient:- Doctor:- Appointment:- Availability:-
patientID DoctorId AppointmentTime AvailabilityTime
PatientName room AppointmentDate DoctorId
address doctorName patientID
DoctorId
表格和医生表格。如果你正在使用int,你只需要在一个地方(医生表)更改它
是的,当你打算出示预约报告时。你需要加入表格来获得医生的名字。
所以你的表结构应该是这样的:
{{1}}