数据库设计的思考(json和array)

由于postgresql支持json和array这种非传统的关系型数据库的数据类型,所以这就提供了一种诱惑把某些数据直接存为json或array这种数据类型,下面分析一下利弊:

好处:

        A 一次就可以加载所有数据,不用关联查询.这种情况一般是有一对多关系的存在(对于一对一关系可能就直接合并到一个表了),不用进行两次查询,也减少了vo和po之间的转化(这种情况一般会为返回的vo定义一个字段的数据类型是array,然后再定义两个po和两张表对应.),对应坏处a

        B 减少了事务控制,因为一次只读写一条记录,所以读和写都可以不用事务控制

        C 增减字段比较灵活,特别是存放来自不同系统的数据(有的时候要存原始数据),可以避免为不同的数据类型定义专有的表(特别是允许自定义适配其他系统的时候),对应坏处c

        D 对于数组数据的修改比较方便(例如一个订单有3样货物,每样货物2件,现在的操作是删除一样货物,将一样货物增加一件,再增加一样货物,如果使用传统的表设计,调整起来比较麻烦,需要将前端抛来的数据和数据库比较从而确定insert,update和delete操作)

坏处:

        a 无法写字段的说明

        b 对json里面的字段难以统计查询(特别是从数据库拉数据时可能会比较麻烦,毕竟很多时候人们还是基于数据在看待问题)

        c 当增加字段并给予默认值时恐怕比较麻烦

猜你喜欢

转载自blog.csdn.net/u012220365/article/details/81807582