2012-04-02 9 views
2

Ich versuche, ein Dr-Patienten-Termin-System zu erstellen. Bisher habe ich vier Tabellen: -Access-Termin-System

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

Alle Beziehungen sind 1 bis manys, mit der viele Neben aus dem Termin Tisch kommen.

Patient: - Die Tabelle für Patientendaten

Arzt: - Die Tabelle für den Arzt

Termindetails: - die Tabelle für Termine

Verfügbarkeit: - Die Tabelle, die Zeitschlitze jeder Arzt speichert, verfügbar

Aber das ist alles relativ neue Sachen für mich und ich werde ziemlich geworfen. Erstens sollte ich in der Doktortabelle ein Feld für DoctorID haben und dieses als Primärschlüssel anstelle des Namens des Arztes verwenden? Auch wenn es in dieser Tabelle wahrscheinlich nur eine Handvoll Datensätze gibt.

Zweitens, wenn ich in DoctorID in allen Tabellen anstelle des doctorName wechseln sollte, würde ich immer noch leicht auf den doctorsName zugreifen können, wenn und wann erforderlich? Dieser Teil verwirrt mich, vielleicht bin ich gerade dabei diese Dinge zu denken.

Der Grund, den ich frage, ist zum Beispiel sagen, dass ich einen Bericht eines Termins erstellen sollte, der die arztID zeigte, sollte ich in der Lage sein, den Namen des Arztes für den Bericht basierend auf der Beziehung zu bekommen? Ebenso für den Patienten basierend auf der Patienten ID.

Ich schätze, ich habe auch genug Informationen in den Tabellen, um zu überprüfen und Terminkollisionen zu verhindern.

Vielen Dank,

+0

Ist das Hausaufgaben? – Fionnuala

+0

Nein, ich habe ein Beispiel verfolgt und es hat mich nachdenklich gemacht. – mjsey

Antwort

3

Sie wirklich einen doctorsid anstelle eines doctorsName verwenden sollten. Denn wenn Sie zusammen join diese tables planen, dann ist es viel besser zu join auf Ints dann auf varchars.

Und eine andere Frage, wenn Sie immer noch mit der varchar Lösung gehen, was passiert ist, wenn der Arzt seinen Namen ändern (Ehe oder so). Sie müssen update die realted Tabellen und die Arzttabelle. Wenn Sie dann mit dem int gehen, müssen Sie es nur an einem Ort ändern (die Arzttabelle)

Ja und wenn Sie Ihren Terminbericht produzieren werden. Sie müssen den Namen des Arztes erhalten, indem Sie sich den Tabellen anschließen.

So sollten Ihre Tabellenstruktur wie folgt aussehen:

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

Außer diesem Namen sind Uhrzeit und Datum reservierte Wörter in Access :) – Fionnuala

+1

Ok. Ich werde es für ihn ändern. Wusste ich nicht. Wenn jemand Zugang sagt renne ich wie die Hölle – Arion

+0

Happy now? ..... – Arion