创建冗余字段的目的有两个:1.避免连表查询;2.保存历史快照。
保存历史快照(比如订单表的单价)不存在数据一致性问题,所以无需过多讨论。
因避免连表查询而创建的冗余字段,如果冗余字段可能会修改,则存在数据一致性问题,需要同步数据。同步方案可参考:
数据库冗余字段的同步策略和管理
实际上为了避免连表查询,也不一定非要创建冗余字段。如果要冗余的字段只作为显示,而不作为查询条件,则可以不创建冗余字段,可以通过缓存解决。
还有一种冗余关联字段的情况。比如C表关联B表,B表关联A表,A表是主表,B表是一级从表,C表是二级从表,这时如果查C表的同时需要展示A表的信息,则需要关联B表。我们可以在C表创建一个冗余字段,直接关联A表,这样就可以避免关联B表查询了。关联字段一般都是主键,主键是不会变的,所有冗余关联字段不存在数据一致性问题。



