问题场景:含有usr字段的表需要拿到org_id,如果不冗余org_id字段则需要关联org表去获取org_id,降低查询效率。
查询结果:冗余org_id字段,有几个注意点:1、org_id字段不可变,否则org表中的org_id变化,而冗余字段org_id不变,会造成一些意想不到的bug。2、冗余字段不要过大,造成空间浪费。
除非你真的有足够证据证明按照规范范式设计数据库会有性能问题而且这个性能问题无法解决,或者有足够证据证明你写入的数据是永远不会被修改,否则不要轻易用性能作为借口反范式设计。
数据库对于表连接的处理能力其实非常强大,关联几个十几个表,只要数据库结构设计合理,其实是非常轻松的事情。