以前曾经想利用json作为字段数据存储格式,这样当我们扩展表属性时可以不增加数据字段,只需要在逻辑端做一些改造即可完成比如 数据字段如下:
{"name":"test","logo":"1234.jpg","desc":"test also"}
但这样的设计有个缺点,我称之为无法索引值,也就是说如果你想查找其中的某个值的时候就不行了,它只合适做单条数据的查询,并且数据量也要严格控制.
而一种改良的方法是在json中放置值,并且应用另外一张表单独放置这些值,这样当你要查询数据时,只要找到对应的表关系即可.而这种关系完全可以在配置中体现,而不需要修改原来的数据.而表的样式基本上都是如下的:
id,value,key,gmt_create
这样当需要进行查询的时候就不会再需要对主表的依赖,也不会因为主表更新,影响别的表的工作,事实上主表的作用只是一个数据索引集合.
这种结构提供了很多特性,比如异构数据库.而我们所要做的可能只是再每次变动时订正数据,当然也可以不订正主表,因为查询本身并不依赖这张表.