django图像列表
我想创建一个网上商店的好模式。模型应该包含许多图像。我有两种方法可以做到这一点: (一) (二) 据我所知,要获得所有图像以获得良好效果: 在1)的情况下,“Img”表中的行将被筛选出商品的id,如果我有100种商品,该表将被筛选100次以获得100种不同的id 在2)的情况下,如果一个普通商品有10张链接的图片,“Img”表将被查询10次,以根据其ID返回10行。所以对于100种商品,“Img”表将被ids查询大约1000次,但不需要过滤。ChainImg也可能指向自身并造成问题。但这是可以避免的django图像列表,django,database,performance,Django,Database,Performance,我想创建一个网上商店的好模式。模型应该包含许多图像。我有两种方法可以做到这一点: (一) (二) 据我所知,要获得所有图像以获得良好效果: 在1)的情况下,“Img”表中的行将被筛选出商品的id,如果我有100种商品,该表将被筛选100次以获得100种不同的id 在2)的情况下,如果一个普通商品有10张链接的图片,“Img”表将被查询10次,以根据其ID返回10行。所以对于100种商品,“Img”表将被ids查询大约1000次,但不需要过滤。ChainImg也可能指向自身并造成问题。但这是可以避
哪种方法更好?更快?更有效率?正确吗?在这种情况下,第一种方法是正确的 在第一种情况下,您可以在good.images中为image创建一个简单的循环
在第二种情况下,您必须在同一个表上执行多个查找,这将需要一个循环在同一个表上执行多个联接,这是不必要的复杂性
class Good(models.Model):
...
class Img(models.Model):
img = models.ImageField(...
good = models.ForeignKey("Good", ...
class Good(models.Model):
img = models.ForeignKey('ChainImg', ...
class ChainImg(models.Model):
img = models.ImageField(...
anotherimg = models.ForeignKey("ChainImg", ...