我有一个名为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)
要么
class Listing(models.Model):
...
class ListingPhoto(models.Model):
listing = models.ForeignKey(Listing, on_delete=models.CASCADE)
photo = = models.ImageField()
好吧,使用20个图像字段肯定会更快,因为在检索这些图像时不需要连接。但这不是很灵活。你可以考虑使用ArrayField
或JSONField
既灵活又不需要连接。