在表PHPMYADMIN之间创建关系

时间:2013-01-30 21:39:10

标签: php mysql phpmyadmin table-relationships

请帮帮我!我正在创建一个数据库来存储有关A& E部门患者的数据。但是,我不确定如何关联表格。

表格结构:

患者(PatientID(PK),姓氏,姓氏,性别,DOB,地址,历史,疾病,优先权)

A& E(ID(PK),PatientID(FK),地址,城市,邮政编码,电话号码)

NURSE(NurseID(PK),forename,surname)

条件(ID(PK),PatientID(FK)症状,诊断,治疗)

基本上这些之间的关系是:

患者参加A& E

患者看过NURSE

NURSE评估患者的病情

以下是需要添加的关系:

  1. 时间应与患者和护士相关
  2. 优先权应与患者和护士联系
  3. 医生应该与时间和优先级挂钩(医生会根据患者的等待时间和优先级做出决定)。医生和患者之间没有直接联系。
  4. 这是不完美的,我得到这些关系正确所以任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我的问题根本不清楚。例如,你谈到与“优先”相关的病人和护士以及与“时间”和“优先”相关联的医生 - 你写的就好像这些是其他表 - 但你没有描述它们。

以下是我如何解决您的问题,基于我对您的问题的模糊认识。

我不知道A& E的含义。我假设它是诊所,医院或其他设施。

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.

显然,你的“国家”可能会有所不同。在美国,我们各州都有一个独特的双字符代码。

cities
    id                      unsigned int(P)
    name                    varchar(50)
    state_id                char(2)(F states.id)

你没有描述你需要了解的关于医生的知识,所以我认为这与你需要了解的护士相同。

doctors
    id                  unsigned int(P)
    forename            varchar(50)
    surname             varchar(50)

类似:流行性感冒,支气管炎,鼻窦感染等。

illnesses
    id                  unsigned int(P)
    description         varchar(75)

nurses
    id                  unsigned int(P)
    forename            varchar(50)
    surname             varchar(50)

我将患者病史记录在自己的表中,以便我们可以将多种疾病与每位患者联系起来,以及患者每次患病的日期。

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.

同样,您的“状态”可能具有不同的ID或名称。

states
    id                      char(2)(P)
    name                    varchar(50)

类似的事情:头晕,疲劳,鼻窦充血,呼吸急促等。

symptoms
    id                  unsigned int(P)
    description         varchar(50)

此表包含患者每次访问A& E时的信息。任何没有end_time的记录都代表目前在A& E等待医生/护士看到的患者。您可以通过将当前时间与beg_time进行比较来确定患者等待的时间。当然,优先权将由录取员,护士,医生等输入/更新

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

多位医生可能会看病人......

visits_doctors
    id                  unsigned int(P)
    visit_id            unsigned int(F visits.id)
    doctor_id           unsigned int(F doctors.id)

多名护士可能会看到病人......

visits_nurses
    id                      unsigned int(P)
    visit_id                unsigned int(F visits.id)
    nurse_id                unsigned int(F nurses.id)

患者在来访时通常会有多种症状......

visits_symptoms
    id                  unsigned int(P)
    visit_id            unsigned int(F visits.id)
    symptom_id          unsigned int(F symptoms.id)