Django - 作为字段的图像与作为ForeignKey模型的图像之间的性能

时间:2018-03-02 00:20:55

标签: django

我有一个名为Listing的模型。用户每个列表最多可以上传20张照片。

我的问题是:在性能方面,最好为Listing创建20个字段,如果用户没有填写它们,则将它们留空,或创建ListingPhoto外键和为每个上传的图片创建1个ListingPhoto?

class Listing(models.Model):
    img_1 = models.ImageField(blank=True)
    img_2 = models.ImageField(blank=True)
    ...
    img_20 = models.ImageField(blank=True)

OR

class Listing(models.Model):
    ...

class ListingPhoto(models.Model):
    listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
    photo = = models.ImageField()

1 个答案:

答案 0 :(得分:0)

嗯,使用20个图像字段肯定会更快,因为在检索这些图像时不需要连接。但这不是很灵活。您可以考虑使用ArrayFieldJSONField两者都是灵活的,不需要加入。