Vaše otázka mi není vůbec jasná. Například mluvíte o tom, že pacienti a sestry jsou spojeni s "Prioritou" a lékaři jsou spojeni s "Časem" a "Prioritou" - a píšete, jako by to byly jiné tabulky - ale nepopisujete je.
Níže je uveden způsob, jak bych vyřešil váš problém na základě mlhavého chápání vašeho problému.
Nevím, co znamená A&E. Předpokládám, že je to klinika, nemocnice nebo jiné zařízení.
aes
id unsigned int(P)
street_address varchar(75)
city_id unsigned int(F cities.id)
postcode varchar(10) // Whatever the size of your postal code.
telenumber varchar(10) // Whatever the size of your telenumber.
Je zřejmé, že váš "stav" může být jiný. Zde ve Spojených státech mají všechny naše státy jedinečný 2místný kód.
cities
id unsigned int(P)
name varchar(50)
state_id char(2)(F states.id)
Nepopsali jste, co potřebujete vědět o lékařích, takže předpokládám, že je to stejné jako to, co potřebujete vědět o sestrách.
doctors
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Věci jako:chřipka, bronchitida, infekce dutin atd.
illnesses
id unsigned int(P)
description varchar(75)
nurses
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Vložil jsem anamnézu pacienta do vlastní tabulky, abychom mohli ke každému pacientovi přiřadit více nemocí a také datum, kdy pacient každou nemoc měl.
patient_history
id unsigned int(P)
patient_id unsigned int(F patients.id)
illness_id unsigned int(F illnesses.id)
qwhen date
patients
id unsigned int(P)
forename varchar(50)
surname varchar(50)
gender enum('f','m')
dob date
street_address varchar(75)
city_id unsigned int(F cities.id)
postcode varchar(10) // Whatever the size of your postal code.
telenumber varchar(10) // Whatever the size of your telenumber.
Opět platí, že vaše "stavy" mohou mít jinou velikost id nebo název.
states
id char(2)(P)
name varchar(50)
Věci jako:závratě, únava, ucpané dutiny, dušnost atd.
symptoms
id unsigned int(P)
description varchar(50)
Tato tabulka obsahuje informace o každé návštěvě pacienta v A&E. Jakýkoli záznam, který nemá koncový čas, by představoval pacienta, který je v současné době na A&E a čeká, až ho uvidí lékař/sestra. Můžete určit, jak dlouho pacient čeká, porovnáním aktuálního času s časem začátku. A prioritu by samozřejmě zadával/aktualizoval přijímající úředník, sestra, lékař atd.
visits
id unsigned int(P)
patient_id unsigned int(F patients.id)
nurse_id unsigned int(F nurses.id)
ae_id unsigned int(F aes.id)
priority unsigned tinyint // 1 = Critical, 2 = Urgent, 3 = whatever...
beg_time datetime
end_time datetime
Pacienta může vidět více lékařů...
visits_doctors
id unsigned int(P)
visit_id unsigned int(F visits.id)
doctor_id unsigned int(F doctors.id)
A více sester může vidět pacienta...
visits_nurses
id unsigned int(P)
visit_id unsigned int(F visits.id)
nurse_id unsigned int(F nurses.id)
Když pacient přijde na návštěvu, má obvykle více příznaků...
visits_symptoms
id unsigned int(P)
visit_id unsigned int(F visits.id)
symptom_id unsigned int(F symptoms.id)