最近做项目,客户要求对象的属性能够动态添加,于是采用了列式存储。
1.传统关系型数据库的行式存储方法为:数据库表的字段表示对象属性,一行数据完整的表示对象的所有属性。
ID | NAME | SEX | AGE |
1 | 张三 | 男 | 25 |
2 | 李四 | 男 | 30 |
如果要添加一个属性,则要重新设计表,增加一个字段,那么后台代码也需要变动。
2.传统关系型数据库的行式存储方法为:将数据转换为 属性名:属性值 的键值对存储,每一行表示对象的一个属性
ID | DATA_ID | ATTR_NAME | ATTR_VALUE |
1 | 001 | NAME | 张三 |
2 | 001 | SEX | 男 |
3 | 001 | AGE | 25 |
4 | 002 | NAME | 李四 |
5 | 002 | SEX | 男 |
6 | 002 | AGE | 30 |
需要增加属性时,只需插入行即可