Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 引用列名而不是字段_Sql_Database_Database Design_Relational Database - Fatal编程技术网

Sql 引用列名而不是字段

Sql 引用列名而不是字段,sql,database,database-design,relational-database,Sql,Database,Database Design,Relational Database,我正在为医疗保健应用程序设计一个数据库。我有一个表格,其中记录了对患者进行的每项血液检测,包括PatientID、日期、血红蛋白、白细胞计数、氧气等列,这意味着每个元素的值存储在不同的列中。 但我也有一个带有参考值的表。这些列是:ID、元素、值 这样,referencevalues表的Element字段实际上是testresult表中几个列中的一个列的名称,我认为在查询DB时这可能是一个问题。设计这些表格哪种方式更合适 我可以创建一个表来为每个元素分配代码和名称,但我不知道如何将其链接到测试结果

我正在为医疗保健应用程序设计一个数据库。我有一个表格,其中记录了对患者进行的每项血液检测,包括PatientID、日期、血红蛋白、白细胞计数、氧气等列,这意味着每个元素的值存储在不同的列中。 但我也有一个带有参考值的表。这些列是:ID、元素、值

这样,referencevalues表的Element字段实际上是testresult表中几个列中的一个列的名称,我认为在查询DB时这可能是一个问题。设计这些表格哪种方式更合适


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

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

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

  • PatientId
  • TestName
    (或
    TestId
然后,您可以将参考值存储在另一个表中,例如:

  • TestName
    (或
    TestId
  • RangeLow
  • RangeHigh

这将使参考值与测试相匹配变得容易。它还可以方便地添加新的测试。

谢谢,我最终这样做了,但我想知道:如果我添加了一个名为VisitID的列或类似的列来对单个样本的所有结果进行分组,它还会被视为第三范式吗?(使用日期不行,因为我们可以从一天中获得多个样本,也可以在几天内从一个样本中获得结果)@Fernanda。肯定您可以在测试结果上设置
visitId
,然后设置一个包含信息的单独表格,例如用于就诊的
patientId