【发布时间】:2017-11-29 18:41:57
【问题描述】:
我想创建一个模型,我可以选择从基于标签的 postgres 数据库中提取一组项目及其描述。在我不经常修改的数据上使用 Django 1.9 和 Postgres 9.5 来提高性能的最有效方法是什么?
我发现了多种方法:
毒液 其中制作了 3 个表,一个存储项目和描述,第二个存储标签,第三个表将标签与项目相关联。看这里: What is the most efficient way to store tags in a database?
使用数组字段 有一个表,其中包含项目、描述和存储标签的数组字段
使用 JSON 字段 有一个表,其中包含项目、描述和存储标签的 JSON 字段。 django 文档提到这使用 JSONB:https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/
我猜想使用如下 JSON 字段:
from django.contrib.postgres.fields import JSONField
from django.db import models
class Item(models.Model):
name = models.CharField()
description = models.TextField(blank=True, null=True)
tags = JSONField()
读取数据效率最高,但我不太确定。
【问题讨论】:
标签: python json django postgresql