sql以列方式存储数据

时间:2015-07-23 11:59:42

标签: mysql sql

   id user_id  apt_id name   value datetime
    1  1        1      bp     109   ....
    2  1        1      sugar  180   ....
    3  2        2      bp     170   ....

我正在尝试用这种方法创建表格,因为患者列不是标准列,有时患者会存储bp和糖,有时只有bp。

我是否正确地创造了设计。如果正确,如何获得单个患者的记录。

谢谢,

2 个答案:

答案 0 :(得分:0)

如果没有错,那么在您的方案中,用户ID就是您的患者,在这种情况下,请使用以下查询来获取单个患者记录,

select * from Patienttable where user_id = '1'

在这里,您将获得单个患者记录。即,对于user_id = 1

<强>输出:

id user_id  apt_id name   value datetime
1  1        1      bp     109   ....
2  1        1      sugar  180   ....

注意:您可以根据需要进行更改,而不是 1

答案 1 :(得分:0)

其他人可能不同意,但我不会这样做,除非您在不同的约会时收集了几个不断变化的症状。如果它是一个小集合(其中一些没有收集),我只是将它们作为列添加到约会表中,并在未收集时将糖列保留为NULL。

   user_id  apt_id bp   sugar datetime
    1        1     109   180    ....
    2        1     170          ....

您提出的模型是实体 - 属性 - 值设计的变体,具有一些优势和一些弱点。 Aaron Bertrand有一个good writeup of when an EAV design is useful,这个设计的成本是多少。根据您描述的情景,我认为这不是最合适的。