天天看点

数据库设计的思考1 视图

1 视图

随着重构的进行,所有的表都将变成视图,那么使用视图查询就没有什么问题,而继承提供了一种不用视图的方案.

由于Mybatis的sql嵌入功能,加上with语法,那么可以不创建数据库的视图,而是使用with创建临时视图,这样在新老版本更替的时候就不会出现代码和数据库不一样的情况

2 不同状态

同一个事物的不同状态下可能有不同字段,并且一般来说达到这种状态必然会导致一些字段非空,如果有太长的流程导致有太多的字段(这样看起来似乎不合理),那么我们是否需要将不同状态的数据放入不同的表呢,这样就可以保证非空字段的一致性(各个表根据自己的含义可以知道有哪些字段,并且这些差异化的字段一般是非空的).一种方式是通过delete 原记录,然后insert到对应的表.另一种方式是形成一张基本记录表,然后每发生一个动作就在响应的动作表中记录响应的新字段,然后主键使用相同(如果这个事件只能发生一次,如果发生多次必然已经是分表了)