私はオンラインショップの良いモデルを作りたいと思います。モデルには多数の画像が含まれている必要があります。私は良いのためのすべての画像を取得するために理解するようイメージのdjangoリスト
1)
class Good(models.Model):
...
class Img(models.Model):
img = models.ImageField(...
good = models.ForeignKey("Good", ...
2)
class Good(models.Model):
img = models.ForeignKey('ChainImg', ...
class ChainImg(models.Model):
img = models.ImageField(...
anotherimg = models.ForeignKey("ChainImg", ...
:
を1の場合)私はそれを行うには、2つのアプローチを持っています"Img"テーブル内の行は商品のIDに対してフィルタリングされ、100個の商品がある場合、テーブルは100種類のIDに対して100回フィルタリングされます。
2の場合)平均画像に10枚の画像がチェーンされている場合、「Img」テーブルが10回クエリされ、IDで10行が返されます。したがって、100品目の "Img"表は約1000回のIDで照会されますが、フィルターは必要ありません。 ChainImgは、それ自身を指し示し、問題を引き起こす可能性があります。しかしそれは避けることができます。
どのアプローチが良いでしょうか?もっと早く?もっと効率的?正しい?