PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

модел на приложение за викторина django за въпроси с множество избори

За правилно нормализирана схема на релационна база данни вие искате отделен Choice модел с външен ключ на Question :

class Question(models.Model):
    question = models.CharField(...)

class Choice(models.Model):
    question = models.ForeignKey("Question", related_name="choices")
    choice = modelsCharField("Choice", max_length=50)
    position = models.IntegerField("position")

    class Meta:
        unique_together = [
            # no duplicated choice per question
            ("question", "choice"), 
            # no duplicated position per question 
            ("question", "position") 
        ]
        ordering = ("position",)

И тогава можете да получите Question изборите на с myquestion.choices.all() (и получете въпроса от Choice с mychoice.question ).

Обърнете внимание, че това няма да наложи никакво ограничение върху броя на изборите за въпрос, дори не изисква въпросът да има поне един свързан избор.

Освен ако нямате много убедителна причина да направите друго, правилно нормализирана схема е това, което искате, когато използвате релационна база данни (rdbms са много повече от просто bitbuckets, те предлагат много полезни функции - стига да имате подходяща схема, т.е.).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съпоставете фраза, завършваща на префикс, с пълно текстово търсене

  2. Какъв е правилният начин за работа с резултати от поточно предаване на slick 3.0.0 и Postgresql?

  3. Използване на pt-pg-summary Percona Toolkit за PostgreSQL

  4. Намерете редове с отложени периоди от време и натрупайте продължителността им

  5. sqlalchemy и автоматични увеличения с postgresql