Câu hỏi của bạn hoàn toàn không rõ ràng đối với tôi. Ví dụ:bạn nói về bệnh nhân và y tá được liên kết với "Mức độ ưu tiên" và các bác sĩ được liên kết với "Thời gian" và "Mức độ ưu tiên" - và bạn viết như thể đây là các bảng khác - nhưng bạn không mô tả chúng.
Dưới đây là cách tôi giải quyết vấn đề của bạn, dựa trên sự hiểu biết mù mờ mà tôi có về vấn đề của bạn.
Tôi không biết A&E nghĩa là gì. Tôi cho rằng đó là một phòng khám, bệnh viện hoặc cơ sở khác.
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.
Rõ ràng là "trạng thái" của bạn có thể khác. Ở Hoa Kỳ, các tiểu bang của chúng tôi đều có một mã gồm 2 ký tự duy nhất.
cities
id unsigned int(P)
name varchar(50)
state_id char(2)(F states.id)
Bạn đã không mô tả những gì bạn cần biết về bác sĩ nên tôi cho rằng nó giống với những gì bạn cần biết về y tá.
doctors
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Những thứ như:cúm, viêm phế quản, nhiễm trùng xoang, v.v.
illnesses
id unsigned int(P)
description varchar(75)
nurses
id unsigned int(P)
forename varchar(50)
surname varchar(50)
Tôi đặt lịch sử bệnh nhân vào bảng riêng để chúng tôi có thể liên kết nhiều bệnh với từng bệnh nhân cũng như ngày tháng mà bệnh nhân mắc từng bệnh.
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.
Một lần nữa, "tiểu bang" của bạn có thể có id hoặc tên kích thước khác.
states
id char(2)(P)
name varchar(50)
Những biểu hiện như:chóng mặt, mệt mỏi, tắc nghẽn xoang, khó thở, v.v.
symptoms
id unsigned int(P)
description varchar(50)
Bảng này chứa thông tin về mỗi lần bệnh nhân đến khám tại A&E. Bất kỳ hồ sơ nào không có end_time sẽ đại diện cho một bệnh nhân hiện đang ở A&E chờ được khám bởi bác sĩ / y tá. Bạn có thể xác định bệnh nhân đã chờ bao lâu bằng cách so sánh thời gian hiện tại với thời gian xin phép. Và tất nhiên ưu tiên sẽ được nhập / cập nhật bởi nhân viên tiếp nhận, y tá, bác sĩ, v.v.
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
Nhiều bác sĩ có thể khám một bệnh nhân ...
visits_doctors
id unsigned int(P)
visit_id unsigned int(F visits.id)
doctor_id unsigned int(F doctors.id)
Và nhiều y tá có thể gặp một bệnh nhân ...
visits_nurses
id unsigned int(P)
visit_id unsigned int(F visits.id)
nurse_id unsigned int(F nurses.id)
Một bệnh nhân thường có nhiều triệu chứng khi họ đến khám ...
visits_symptoms
id unsigned int(P)
visit_id unsigned int(F visits.id)
symptom_id unsigned int(F symptoms.id)