Pertanyaan Anda sama sekali tidak jelas bagi saya. Misalnya Anda berbicara tentang pasien dan perawat yang dikaitkan dengan "Prioritas" dan dokter yang dikaitkan dengan "Waktu" dan "Prioritas" - dan Anda menulis seolah-olah ini adalah tabel lain - tetapi Anda tidak menggambarkannya.
Di bawah ini adalah bagaimana saya akan memecahkan masalah Anda, berdasarkan pemahaman saya tentang masalah Anda.
Saya tidak tahu apa artinya A&E. Saya berasumsi itu adalah klinik, rumah sakit, atau fasilitas lainnya.
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.
Jelas "keadaan" Anda bisa berbeda. Di sini, di Amerika Serikat, semua negara bagian kami memiliki kode 2 karakter yang unik.
cities
id unsigned int(P)
name varchar(50)
state_id char(2)(F states.id)
Anda tidak menjelaskan apa yang perlu Anda ketahui tentang dokter, jadi saya berasumsi itu sama dengan apa yang perlu Anda ketahui tentang perawat.
doctors
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Hal-hal seperti:influenza, bronkitis, infeksi sinus, dll.
illnesses
id unsigned int(P)
description varchar(75)
nurses
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Saya memasukkan riwayat pasien ke dalam tabelnya sendiri sehingga kami dapat mengaitkan beberapa penyakit dengan setiap pasien serta tanggal kapan pasien menderita setiap penyakit.
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.
Sekali lagi, "negara bagian" Anda mungkin memiliki id atau nama ukuran yang berbeda.
states
id char(2)(P)
name varchar(50)
Hal-hal seperti:pusing, kelelahan, sinus tersumbat, sesak napas, dll.
symptoms
id unsigned int(P)
description varchar(50)
Tabel ini menyimpan informasi tentang setiap kali pasien mengunjungi A&E. Catatan apa pun yang tidak memiliki waktu_akhir akan mewakili pasien yang saat ini berada di A&E menunggu untuk dilihat oleh dokter/perawat. Anda dapat menentukan berapa lama seorang pasien telah menunggu dengan membandingkan waktu saat ini dengan beg_time. Dan tentunya prioritas akan dimasukkan/diperbaharui oleh petugas penerimaan, perawat, dokter, dll.
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
Beberapa dokter mungkin melihat pasien...
visits_doctors
id unsigned int(P)
visit_id unsigned int(F visits.id)
doctor_id unsigned int(F doctors.id)
Dan beberapa perawat mungkin melihat seorang pasien...
visits_nurses
id unsigned int(P)
visit_id unsigned int(F visits.id)
nurse_id unsigned int(F nurses.id)
Seorang pasien biasanya memiliki beberapa gejala ketika mereka datang berkunjung...
visits_symptoms
id unsigned int(P)
visit_id unsigned int(F visits.id)
symptom_id unsigned int(F symptoms.id)