1

我有一个要求,用户输入测试数据我有字段:

例子

 Blood   Pulse 
 ----    -----
 12      13

需要添加另一个我们不知道测试内容的字段。我在考虑有一个名为 Misc1Label、Misc1Value 的字段

假设Misc1Label是 Oral 并且Misc1Value是 88

稍后我可以使用 Pivot 如果我们需要捕获 Misc1Label 的值并使用 Pivot 以便我可以拥有类似的东西

 Blood  Pulse  Oral
 -----  ----   ----
   12    13     88

我在想是否有任何其他最佳实践来处理这个问题。

提前致谢

4

1 回答 1

1

您真的需要将 Blood 和 Pulse 保留为单独的字段吗?您也可以将血液和脉搏视为不同的属性。听起来像这样的东西会起作用,并且无需使用 PIVOT 命令即可轻松查询。

PersonAttribute
    PersonId int (I'm only presuming here)
    AttributeId int

Attribute
    AttributeId int
    AttributeTypeId int
    AttibuteValue varchar(100)

AttributeType
    AttributeTypeId int
    AttributeType varchar(100)

然后,您可以将 Blood、Pulse、Weight 等存储在 AttributeType 表中,并将 PersonAttribute 表用作主表的 1-N 方法。只是一个想法。

SELECT Distinct PA.PersonId
FROM PersonAttribute PA
   INNER JOIN Attribute A ON PA.AttributeId = A.AttributeId 
   INNER JOIN AttributeType AT ON A.AttributeTypeId = AT.AttributeTypeId 
WHERE AT.AttributeType = 'Blood'

当然,如果需要,可以应用相同的模型,将 Blood and Pulse 留在主表中。

祝你好运。

于 2013-02-07T19:35:33.340 回答