问题介绍:由于业务比较复杂,根据不同的项目,有不同的表。项目很多。而项目表中,又有很多的字段,每个项目属性都不一样。
导致的问题:
1、加一个项目就需要加一个表。
2、项目表字段过多,容易溢出,需要垂直分表。
3、根据选择不同的参数,对应不同的属性,导致项目表中有部分是无用的字段。
想法:弄成通用的。项目共用表+key value 形式的细表。多少个属性多少条细表记录。这样的话可以解决上面的问题。1:加一个项目,不需要加表;2:表的字段不会太多导致要垂直分表;3:存在的属性才会加到细表中。
由上面的问题由延伸出其他的问题:
1、字段不统一有些text,有些只需要varchar(1);//方案,分表处理。可以建多个细表,value字段分别 10、100、255、text等。然后根据value的长度插入到不同的表中。
2、明细表肯定会很大;//可以参考流程表,设计归档表。即业务完成之后把数据转移到归档表中。
用久之后归档表也会越来越大,所以可以考虑一段时间之后,可以将归档表数据,按照日期,以json等的格式,存放到文件中。再之可以对文件进行定时增量备份操作。