Ich möchte ein Modell eines Gutes für einen Online-Shop erstellen. Das Modell sollte eine Anzahl von Bildern enthalten. Ich habe zwei Ansätze, das zu tun:django Liste der Bilder
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", ...
wie ich verstehen Sie alle Bilder für einen guten bekommen:
bei 1) Zeilen in der Tabelle "Img" werden nach der ID des Gutes gefiltert, und wenn ich 100 Waren habe, wird die Tabelle 100 Mal für 100 verschiedene IDs gefiltert.
im Fall von 2) Wenn ein durchschnittliches Gut 10 Bilder verkettet hat, wird die "Img" -Tabelle 10 Mal abgefragt, um 10 Reihen mit ihren IDs zurückzugeben. So wird bei 100 Waren "Img" -Tabelle etwa 1000 mal nach IDs abgefragt, aber keine Filterung nötig. ChainImg könnte auch auf sich selbst hinweisen und ein Problem verursachen. aber das kann vermieden werden.
Welcher Ansatz wäre besser? Schneller? Effizienter? Richtig?