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。
我是否正确地创造了设计。如果正确,如何获得单个患者的记录。
谢谢,
答案 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,这个设计的成本是多少。根据您描述的情景,我认为这不是最合适的。