首页 > 解决方案 > 将数据保存在 Config 表中的行中与保存为 Postgres JSONField 中的键 - 哪个更好?

问题描述

由于 Postgres 支持 JSON 字段,这是否比 WP 仍然使用的方式将每个配置项保存在某个表中的行中更优惠?

完全披露:我作为 Django 用户询问 postgres 的新用户。

标签: pythondjangopostgresql

解决方案


这取决于。以下是一些需要考虑的事情:

  1. 数据结构是否很好地映射到 JSON?试着形象化它。数据是更具相关性(考虑到其他数据的链接)还是层次结构?如果您存储的数据需要与关系存储的数据大量混合,这可能会变得很痛苦。

  2. 您是否对这些字段进行复杂的搜索?查询 jsonb 字段的功能强大,但可能会涉及复杂性和学习。我喜欢查询 jsonb 并在我的查询中操作它的强大功能,但它对我来说从来没有像常规 SQL 那样简单或自然。

  3. 您的 ORM 和任何其他工具(如查询构建器)能很好地使用它吗?如果您使用的是较旧的技术,这是一个特别重要的问题。如果您使用 ORM,则必须使用纯 SQL 来执行 jsonb 查询可能会变得很烦人。

  4. 延迟加载是另一个考虑因素。如果您有延迟加载策略,它可能会或可能不会很好地转换为 jsonb 字段。如果您的延迟加载策略很复杂,可能需要一些工作才能使其与 jsonb 字段很好地配合使用。

  5. 一个好的序列化和反序列化策略将是必要的。如果你没有很好的实现,它会变得笨拙。

顺便说一句……我是使用 jsonb 的大力倡导者。在我看来,这是一个很好的游戏规则改变者。所以不要以为我在劝阻它。也就是说,如果您只是尝试将所有内容都制作为 jsonb,您可能很快就会后悔。您只需要评估哪种方法最适合每种情况。一般来说,我认为它通常适用于配置,但我必须了解特定情况。我希望这会有所帮助!


推荐阅读