0
- Einige
Companies
repräsentieren einigePlaceTypes
(Fitnessraum, Pool, etc.). - Verschiedene
PlaceTypes
haben unterschiedlicheCriterias
für die Bewertung (Personal, Sauberkeit, etc.) - Auf der Grundlage der Placetype des Unternehmens ist es notwendig, geeignete Kriterien anzuwenden, um diese Firma zu bewerten
class Companies(models.Model):
name = models.CharField()
class PlaceTypes(models.Model):
name = models.CharField() # Gym, pool, etc.
company = models.ForeignKey(Companies)
class Criterias(models.Model):
name = models.CharField() # Staff, cleanness, etc.
place_type = models.ForeignKey(PlaceTypes)
class Ratings(models.Model):
company = models.ForeignKey(Companies)
criteria = models.ForeignKey(Criterias)
votes = models.PositiveIntegerField()
total = models.PositiveIntegerField()
Es gibt also eine Art von Duplizierung zwischen Companies -> PlaceTypes -> Criterias
und Companies <- Ratings -> Criterias
. Ist es o.k?Könnte jemand überprüfen, ob meine Beziehungen zwischen Modellen korrekt sind?
Sind Sie sicher? Wenn ich richtig liege, werden in diesem Fall Ratings auf PlaceTypes statt auf Companies angewendet, dh alle Unternehmen mit demselben PlaceType erhalten die gleichen Bewertungen. – TitanFighter
Mit der Art, wie Sie es beschrieben haben, dachte ich, dass jeder Ihrer PlacesTypes zu einer Firma gehört scheint klar, dass Sie eine Viele-zu-Viele-Beziehung zwischen Unternehmen und Ortstypen beschreiben möchten. In diesem Fall würde ich das Firmenfeld aus PlaceTypes entfernen und stattdessen Folgendes in Ihrem Firmenmodell deklarieren: 'place_types = models.ManyToManyField (' PlaceTypes ') ' – blhsing