【问题标题】:Referencing column name rather than field引用列名而不是字段
【发布时间】:2020-02-25 20:05:59
【问题描述】:

我正在为医疗保健应用程序设计一个数据库。我有一个表格,我在其中注册了对患者进行的每次血液测试,其中包含 PatientID、Date、Hemoglobin、WhiteBCellCount、Oxygen 等列,这意味着每个元素的值都存储在不同的列中。 但我也有一张带有参考值的表格。这些列是:ID、元素、值。

这样,参考值表的Element字段实际上是测试结果表中几列之一的名称,我认为在查询数据库时可能会出现问题。哪种方式更适合设计这些表格?

我可以制作一个表格来为每个元素分配一个代码和名称,但我不知道如何将它链接到测试结果表。我不想更改测试结果表的设计,因为每次都会注册所有血液元素,我认为每个元素都有一个列是可以的,但我愿意接受有关该主题最佳实践的建议。

【问题讨论】:

    标签: sql database database-design relational-database


    【解决方案1】:

    您不想将一个表中的列与另一个表中的列名进行比较。

    我建议您更改为每位患者存储基础数据的方式。不要使用不同的列,而是使用三个基本列:

    • PatientId
    • TestName(或TestId
    • Value

    然后您可以将参考值存储在另一个表中,例如:

    • TestName(或TestId
    • RangeLow
    • RangeHigh

    这将使参考值与测试相匹配变得容易。它还将使添加新测试变得容易。

    【讨论】:

    • 谢谢,我最终这样做了,但我想知道:如果我添加一个名为 VisitID 的列或类似的东西来对来自单个样本的所有结果进行分组,它是否仍被视为第三范式? (使用日期是不行的,因为我们可以从一天中获得多个样本,或者在几天的过程中从一个样本中获得结果)
    • @Fernanda 。 . .确实。您可以在测试结果上使用visitId,然后在单独的表格中包含信息——例如用于访问的patientId
    猜你喜欢
    • 1970-01-01
    • 2011-10-09
    • 2020-06-18
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2013-04-17
    相关资源
    最近更新 更多