繁体   English   中英

sql将数据明智地存储在列中

[英]sql store the data in the column wise

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

我正在尝试以这种方式创建表格,因为患者列不是标准列,有时患者将存储bp和sugar,有时仅存储bp。

我在设计中正确吗? 如果正确,如何获取单个患者的记录。

谢谢,

如果没错,则在您的情况下,userid是您的患者编号,在这种情况下,请使用以下查询获取单个患者记录,

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

其他人可能会不同意,但我不会这样,除非您在不同的约会中遇到了几种变化的症状。 如果它是一个很小的集合(其中一些未被收集),则将它们作为列添加到约会表中,而在不收集时将sugar列保留为NULL。

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

您要提出的模型是Entity-Attribute-Value设计的一种变体,它具有一些优点和缺点。 Aaron Bertrand 很好地写下了EAV设计何时有用以及该设计的成本是多少。 根据您描述的方案,我认为这不是最合适的方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM