2012-04-02 96 views
2

我正試圖建立一個博士 - 病人預約系統。到目前爲止,我有四個表: -訪問預約系統

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

所有的關係都是1至manys,與許多側出來的預約表。

病人: - 病人細節

醫生: - 對於醫生表詳細

預約: - 約會表

可用性: - 存儲時隙表中的每個醫生可用

但是這對我來說都是相對較新的東西,我越來越被拋出。首先在醫生桌上,我應該有一個DoctorID字段,並將其用作主鍵而不是醫生名字?儘管在該表中可能只有少數記錄。

其次,如果我在所有表格中更改爲DoctorID而不是doctorName,那麼如果需要時仍可輕鬆訪問doctorsName?這部分是混淆了我,也許我只是在想這些事情。

我問的原因是,比如說我要提交一份顯示doctorID的約會報告,我應該能夠根據這個關係得到醫生的報告名稱權嗎?基於患者ID的患者也是如此。

我猜我也有足夠的信息在表中檢查和防止約會衝突。

非常感謝,

+0

這是功課? – Fionnuala 2012-04-02 13:51:32

+0

不,我一直在通過一個例子,它讓我思考。 – mjsey 2012-04-02 13:56:52

回答

3

你真的應該使用doctorsid代替doctorsName。因爲如果您計劃將這些tables放在一起,那麼對於整數然後在varchars上要好得多。

還有一個問題,如果你仍然在與varchar解決方案將發生什麼,如果醫生改變它的名字(婚姻或其他)。你需要update真實表和醫生表。如果你接着用int,你只需要在一個地方改變它(醫生桌)

是的,當你要產生你的預約報告。您需要通過加入表格來獲取醫生姓名。

所以,你的表結構應該是這個樣子:

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

除了這個名字,時間和日期是Access中的保留字:) – Fionnuala 2012-04-02 14:09:52

+1

好的。我會爲他改變它。不知道。當有人說訪問我像地獄一樣運行 – Arion 2012-04-02 14:12:43

+0

快樂嗎?..... – Arion 2012-04-02 14:14:08