Django Postgres ArrayField vs One-to-Many关系

时间:2014-11-20 19:58:31

标签: django postgresql django-models

对于我的数据库中的模型,我需要为特定字段存储大约300个值。如果我使用Postgres特定的ArrayField而不是单独的表与One-to-,那么在性能查询简单性方面会有什么缺点?很多关系?

1 个答案:

答案 0 :(得分:12)

如果使用数组字段

如果您使用M2M

  • 您可以更轻松地过滤这些相关值
  • 默认情况下,这些字段会被推迟,如果您需要,可以使用prefetch_related,如果只想加载这些值的子集,则可以使用{/ li>
  • 由于密钥和额外的id字段
  • ,数据库中的总存储量将略高于M2M
  • 在这种情况下,由于密钥,连接的成本完全可以忽略不计。

就个人而言,我说要使用M2M表,但我不知道您的具体应用。如果您要处理大量数据,则可能需要抓取代表性数据集并使用它来测试这两种方法。