表结构设计中对关联表冗余字段的思考

171 阅读1分钟

设计表结构的时候,对冗余字段通常有以下2种情况:

  1. 数据属于快照,不会进行修改

    不用考虑,直接冗余

  2. 数据不属于快照,单纯想要冗余

    场景一: 菜单表和菜单分组表,菜单表关联了菜单分组id,想冗余菜单分组名称字段进来

    见解:菜单表的数据量级较小,对数据的维护成本不高,所以可以冗余字段,也可以连表查询,都无伤大雅。

    场景二: 图书表和图书馆表,图书表关联了图书馆表id,想冗余图书馆表名称

    见解:图书表不同于菜单表,在业务上数据量会无限增长,所以不建议冗余,连表查询是较好的选择,连表查询可以考虑使用视图来简化操作

    科普视图的好处:

    • 简化用户操作
    • 对机密数据提供安全保护
    • 表达更加清晰

值得注意的是,数据是否冗余也要看业务场景,假如该冗余字段不需要在分页查询中展示,只在详情页中获取,那么最好还是不要冗余了。