Twoje pytanie nie jest dla mnie jasne. Na przykład mówisz o pacjentach i pielęgniarkach powiązanych z „Priorytetem”, a lekarzach o „Czasie” i „Priorytecie” – i piszesz tak, jakby to były inne tabele – ale ich nie opisujesz.
Poniżej przedstawiam, w jaki sposób rozwiązałbym Twój problem, w oparciu o mgliste zrozumienie Twojego problemu.
Nie wiem, co oznacza A&E. Zakładam, że to przychodnia, szpital lub inna placówka.
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.
Oczywiście twój „stan” może być inny. Tutaj, w Stanach Zjednoczonych, wszystkie nasze stany mają unikalny dwuznakowy kod.
cities
id unsigned int(P)
name varchar(50)
state_id char(2)(F states.id)
Nie opisałeś, co musisz wiedzieć o lekarzach, więc zakładam, że to to samo, co musisz wiedzieć o pielęgniarkach.
doctors
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Rzeczy takie jak:grypa, zapalenie oskrzeli, infekcja zatok itp.
illnesses
id unsigned int(P)
description varchar(75)
nurses
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Umieszczam historię pacjenta w osobnej tabeli, abyśmy mogli powiązać wiele chorób z każdym pacjentem, a także datę, kiedy pacjent miał każdą chorobę.
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.
Ponownie, twoje „stany” mogą mieć inny identyfikator lub nazwę rozmiaru.
states
id char(2)(P)
name varchar(50)
Rzeczy takie jak:zawroty głowy, zmęczenie, przekrwienie zatok, duszność itp.
symptoms
id unsigned int(P)
description varchar(50)
Ta tabela zawiera informacje o każdej wizycie pacjenta na izbie przyjęć. Każdy rekord, który nie ma czasu zakończenia, reprezentuje pacjenta, który aktualnie znajduje się na pogotowiu i czeka na wizytę lekarza/pielęgniarki. Możesz określić, jak długo pacjent czeka, porównując aktualny czas z beg_time. I oczywiście priorytet zostanie wprowadzony/zaktualizowany przez urzędnika przyjmującego, pielęgniarkę, lekarza itp.
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
Wielu lekarzy może zobaczyć pacjenta...
visits_doctors
id unsigned int(P)
visit_id unsigned int(F visits.id)
doctor_id unsigned int(F doctors.id)
A wiele pielęgniarek może zobaczyć pacjenta...
visits_nurses
id unsigned int(P)
visit_id unsigned int(F visits.id)
nurse_id unsigned int(F nurses.id)
Pacjent zwykle ma wiele objawów, kiedy przychodzi na wizytę...
visits_symptoms
id unsigned int(P)
visit_id unsigned int(F visits.id)
symptom_id unsigned int(F symptoms.id)