【问题标题】:Access Appointment System访问预约系统
【发布时间】:2012-04-02 13:41:44
【问题描述】:

我正在尝试制作一个医生病人预约系统。到目前为止,我有四张桌子:-

 Patient:-         Doctor:-           Appointment:-             Availability:-
 patientID         doctorName         time                      time
 name              room               date                      doctorName
 address                              patientID
                                      doctorName 

所有关系都是一对多,多方从约会表中出来。

患者:- 患者详细信息表

医生:- 医生详细信息表

约会:- 约会表

可用性:- 存储每个医生可用时隙的表

然而,这对我来说都是相对较新的东西,我已经被扔掉了。首先在医生表中我应该有一个DoctorID字段并将其用作主键而不是医生姓名吗?即使该表中可能只有少数记录。

其次,如果我要在所有表中更改为 DoctorID 而不是医生姓名,我是否仍然能够在需要时轻松访问医生姓名?这部分让我感到困惑,也许我只是在想这些事情。

我问的原因是例如说我要生成显示医生ID的预约报告,我应该能够根据关系获取报告的医生姓名,对吗?对于基于患者 ID 的患者也是如此。

我猜我在表格中也有足够的信息来检查和防止约会冲突。

非常感谢,

【问题讨论】:

  • 不,我一直在学习一个例子,这让我开始思考。

标签: sql database ms-access rdbms


【解决方案1】:

您确实应该使用doctorsid 而不是doctorsName。因为如果您计划将join 这些tables 放在一起,那么在整数上使用join 比在varchars 上要好得多。

还有一个问题,如果您仍然使用varchar 解决方案,如果医生改名(结婚左右)会发生什么。您需要update realted 表和医生表。如果您要使用 int,则只需在一个地方(医生表)更改它

是的,当您准备出具预约报告时。您需要通过加入表格来获取医生姓名。

所以你的表结构应该是这样的:

 Patient:-         Doctor:-           Appointment:-             Availability:-
 patientID         DoctorId           AppointmentTime           AvailabilityTime
 PatientName       room               AppointmentDate           DoctorId
 address           doctorName         patientID
                                      DoctorId

【讨论】:

  • 除了名称、时间和日期是Access中的保留字:)
  • 好的。我会为他改变它。不知道。当有人说访问时,我会跑得像地狱
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
  • 2014-11-20
  • 2018-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多