Дизайн базы данных для сайта обзора Django - PullRequest
0 голосов
/ 04 марта 2012

Привет. Я разрабатываю обзорный сайт для изучения Джанго.

Каждый отзыв имеет список атрибутов рейтинга, таких как:

  • Цена: [x] [x] [x] [x] [x]
  • Расположение: [x] [x] [] [] []
  • Комфорт: [x] [x] [x] [] []
  • и т. д.

Я застрял в момент написания модели обзора / оценки.Как я могу описать это с помощью шаблона MVC?Список атрибутов рейтинга может быть другим.

В настоящее время у меня есть этот код:

class Place(models.Model):
    name = models.CharField(max_length=512)
    address = models.CharField(max_length=512)
    author = models.ForeignKey(UserProfile)

class Review(models.Model):
    ????

class Review(models.Model):
    name = models.CharField(max_length=1024)
    text = models.TextField()
    author = models.ForeignKey(UserProfile)
    place = models.ForeignKey(place)
    ratings = models.ForeignKey(Rating)

Любая подсказка?

1 Ответ

1 голос
/ 04 марта 2012

Если список (потенциальных) атрибутов доступен заранее, вы можете просто ввести поле базы данных для каждого из них и сохранить ненастроенные атрибуты как None:

class Review(models.Model):
    name = models.CharField(max_length=1024)
    text = models.TextField()
    author = models.ForeignKey(UserProfile)
    place = models.ForeignKey(place)

    price_rating = models.IntegerField(null=True)
    location_rating = models.IntegerField(null=True)
    # ...

В противном случае (если атрибуты / рейтинги являются полностью переменными), вам нужно создать другую модель для хранения ваших атрибутов (пропустите поля _rating выше):

class ReviewAttribute(models.Model):
    review = models.ForeignKey(Review, related_name='attributes')
    name = models.CharField(max_length=100)
    value = models.IntegerField()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...