我当前正在使用以下EAV(实体属性值)模型运行分析查询(MySQL)。
存储空间:
| PatientID | Attribute | Int_Value | VarChar_Value | String_Value |
|-----------|-----------|-----------|---------------|---------------------|
| 1001 | Age | 61 | | |
| 1001 | Weight | 83 | | |
| 1001 | Gender | | M | |
| 1001 | Comment | | | Some Random Comment |
| 1002 | Age | 34 | | |
| 1002 | Weight | 72 | | |
| 1002 | Gender | | F | |
| 1002 | Comment | | | Some Random Comment |
使用以下视图(带有Joins)
| PatientID | Attribute | Int_Value |
|-----------|-----------|---------------------|
| 1001 | Age | 61 |
| 1002 | Age | 34 |
| PatientID | Attribute | Int_Value |
|-----------|-----------|---------------------|
| 1001 | Comment | Some Random Comment |
| 1002 | Comment | Some Random Comment |
| PatientID | Attribute | Int_Value |
|-----------|-----------|---------------------|
| 1001 | Gender | M |
| 1002 | Gender | F |
| PatientID | Attribute | Int_Value |
|-----------|-----------|---------------------|
| 1001 | Weight | 83 |
| 1002 | Weight | 72 |
我打算迁移到MonetDB。但是不确定如何建模:
一个拥有所有属性的大桌子? 还是多个表,例如上面的视图(然后将它们联接起来进行分析)?
在OLAP查询中,其中一个(或者如果有其他建模选项)是最快/最好的。