【发布时间】:2019-02-14 19:36:39
【问题描述】:
我们目前有一个存储用户信息的表。一些列包含用户 ID、名称等信息,但许多其他列(布尔值、整数和 varchars 等)包含每个用户的配置选项。
随着时间的推移,这导致表格的宽度变得非常大,我认为是时候将其迁移到新的东西了,所以我想将所有与“选项”相关的列删除到单独的数据结构中。
根据我的经验,执行此操作的典型方法是创建一个仅包含 option_id 和 option_name 的新表,以及包含 user_id、option_id、@ 的第二个新表例如 987654326@。
但是,一位同事建议使用新的jsonb 列类型作为替代,但我不知道我是否喜欢以非关系方式存储关系数据的想法。从 Java 的角度来看,据我所知,它几乎是一样的——它只是变成了一个 POJO,然后缓存在对象上。
我应该提到用户数量将非常低,只会达到数千,而列数可能并且将会达到数百。
有人对这里的最佳前进方式提出建议吗?
【问题讨论】:
标签: postgresql database-normalization