【问题标题】:Creating relations between tables PHPMYADMIN创建表之间的关系 PHPMYADMIN
【发布时间】:2013-01-14 21:03:04
【问题描述】:

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

表结构:

患者(PatientID(PK)、名字、姓氏、性别、出生日期、地址、历史、疾病、优先级)

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

护士(护士 ID(PK)、名字、姓氏)

CONDITION(ID(PK)、PatientID(FK) 症状、诊断、治疗)

它们之间的关系基本上是:

患者参加急诊室

护士看到的病人

护士评估患者的状况

以下是需要添加的关系:

  1. 时间应与患者和护士联系起来
  2. 优先级应与患者和护士联系起来
  3. 医生应与时间和优先级挂钩(医生将根据等待时间和患者的优先级做出决定)。医生和病人之间没有直接的联系。

我必须使这些关系正确,因此我们将不胜感激。谢谢你。

【问题讨论】:

  • 你的表结构是什么?
  • 我已经用表格结构编辑了问题

标签: php mysql phpmyadmin table-relationships


【解决方案1】:

你的问题我一点都不清楚。例如,您谈到患者和护士与“优先级”相关联,而医生与“时间”和“优先级”相关联——你写得好像这些是其他表格——但你没有描述它们。

根据我对您的问题的模糊理解,以下是我将如何解决您的问题。

我不知道 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.

显然,您的“状态”可能会有所不同。在美国,我们的州都有一个唯一的 2 字符代码。

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)

【讨论】:

  • 也许你有一个电子邮件地址,我可以更好地解释一下?
  • 这违背了 StackOverflow 的目的——让许多人从这些问题和答案中学习并做出贡献。如果我的回答对你没有帮助,请告诉我,我会删除它。
  • 您的回答很有用,我很难确定每个表之间的关系。我有的表格:PATIENTS(id、forename、surname、gender、dob、address、patient history、priority、timeid)
  • 在我的示例中,无论您在哪里看到“F”,它都表示一个外键,然后是它指向的表和字段名。例如,(F visit.id) 将是“visits”表中“id”字段的外键。我的示例中是否存在缺少的特定关系?或者我是否定义了对您没有意义的关系?
  • 我将如何联系护士评估患者的状况?而时间(id,到达时间,预计等待时间,出院)与护士有关,因为她根据病人的病情和优先级给病人一个等待时间,也与病人有关。与优先级相同;与患者和护士相关联,因为护士输入患者的优先级,并根据患者的状况将患者置于优先级。医生应与时间和优先级挂钩(医生将根据等待时间和患者的优先级做出决定)。医生和患者之间没有直接联系。
猜你喜欢
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2012-04-05
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多