La tua domanda non mi è per niente chiara. Ad esempio parli di pazienti e infermieri collegati a "Priorità" e medici collegati a "Tempo" e "Priorità" - e scrivi come se si trattasse di altre tabelle - ma non li descrivi.
Di seguito è riportato come risolverei il tuo problema, in base alla comprensione nebbiosa che ho del tuo problema.
Non so cosa significhi A&E. Presumo che sia una clinica, un ospedale o un'altra struttura.
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.
Ovviamente il tuo "stato" potrebbe essere diverso. Qui negli Stati Uniti tutti i nostri stati hanno un codice univoco di 2 caratteri.
cities
id unsigned int(P)
name varchar(50)
state_id char(2)(F states.id)
Non hai descritto ciò che devi sapere sui medici, quindi presumo che sia lo stesso di ciò che devi sapere sugli infermieri.
doctors
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Cose come:influenza, bronchite, sinusite, ecc.
illnesses
id unsigned int(P)
description varchar(75)
nurses
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Ho inserito l'anamnesi del paziente nella sua tabella in modo da poter associare più malattie a ciascun paziente, nonché una data in cui il paziente ha avuto ciascuna malattia.
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.
Anche in questo caso, i tuoi "stati" potrebbero avere un ID o un nome di dimensioni diverse.
states
id char(2)(P)
name varchar(50)
Cose come:vertigini, affaticamento, congestione sinusale, mancanza di respiro, ecc.
symptoms
id unsigned int(P)
description varchar(50)
Questa tabella contiene informazioni su ogni volta che un paziente visita un pronto soccorso. Qualsiasi record che non ha un end_time rappresenterebbe un paziente che si trova attualmente in un pronto soccorso in attesa di essere visitato da un medico/infermiere. È possibile determinare da quanto tempo un paziente ha atteso confrontando l'ora corrente con il beg_time. E, naturalmente, la priorità sarebbe inserita/aggiornata dall'impiegato, dall'infermiere, dal medico, ecc.
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
Più medici potrebbero vedere un paziente...
visits_doctors
id unsigned int(P)
visit_id unsigned int(F visits.id)
doctor_id unsigned int(F doctors.id)
E più infermieri potrebbero vedere un paziente...
visits_nurses
id unsigned int(P)
visit_id unsigned int(F visits.id)
nurse_id unsigned int(F nurses.id)
Un paziente di solito presenta più sintomi quando si presenta per una visita...
visits_symptoms
id unsigned int(P)
visit_id unsigned int(F visits.id)
symptom_id unsigned int(F symptoms.id)