Sql 引用列名而不是字段
我正在为医疗保健应用程序设计一个数据库。我有一个表格,其中记录了对患者进行的每项血液检测,包括PatientID、日期、血红蛋白、白细胞计数、氧气等列,这意味着每个元素的值存储在不同的列中。 但我也有一个带有参考值的表。这些列是:ID、元素、值 这样,referencevalues表的Element字段实际上是testresult表中几个列中的一个列的名称,我认为在查询DB时这可能是一个问题。设计这些表格哪种方式更合适Sql 引用列名而不是字段,sql,database,database-design,relational-database,Sql,Database,Database Design,Relational Database,我正在为医疗保健应用程序设计一个数据库。我有一个表格,其中记录了对患者进行的每项血液检测,包括PatientID、日期、血红蛋白、白细胞计数、氧气等列,这意味着每个元素的值存储在不同的列中。 但我也有一个带有参考值的表。这些列是:ID、元素、值 这样,referencevalues表的Element字段实际上是testresult表中几个列中的一个列的名称,我认为在查询DB时这可能是一个问题。设计这些表格哪种方式更合适 我可以创建一个表来为每个元素分配代码和名称,但我不知道如何将其链接到测试结果
我可以创建一个表来为每个元素分配代码和名称,但我不知道如何将其链接到测试结果表。我不想改变测试结果表的设计,因为每次都会注册所有的血液元素,我认为每个元素都有一个列是可以的,但我愿意接受关于此主题最佳实践的建议。您不想将一个表中的列与另一个表中的列名称进行比较 我建议您更改存储每位患者基础数据的方式。不使用不同的列,而是使用三个基本列:
PatientId
(或TestName
)TestId
值
(或TestName
)TestId
RangeLow
RangeHigh
这将使参考值与测试相匹配变得容易。它还可以方便地添加新的测试。谢谢,我最终这样做了,但我想知道:如果我添加了一个名为VisitID的列或类似的列来对单个样本的所有结果进行分组,它还会被视为第三范式吗?(使用日期不行,因为我们可以从一天中获得多个样本,也可以在几天内从一个样本中获得结果)@Fernanda。肯定您可以在测试结果上设置
visitId
,然后设置一个包含信息的单独表格,例如用于就诊的patientId
。