PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Model aplikacji quizu django dla pytań wielokrotnego wyboru

W przypadku prawidłowo znormalizowanego schematu relacyjnej bazy danych potrzebny jest odrębny Choice model z kluczem obcym na 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",)

A potem możesz otrzymać Question wybory użytkownika za pomocą myquestion.choices.all() (i otrzymaj pytanie od Choice z mychoice.question ).

Pamiętaj, że nie nałoży to żadnych ograniczeń na liczbę opcji do wyboru dla pytania, ani nawet nie nakazuje, aby Pytanie miało co najmniej jedną powiązaną opcję.

O ile nie masz bardzo ważnego powodu, aby zrobić inaczej, właściwie znormalizowany schemat jest tym, czego potrzebujesz podczas korzystania z relacyjnej bazy danych (rdbms to znacznie więcej niż zwykłe bitbuckety, oferują dużo przydatnych funkcji - o ile masz odpowiedni schemat).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:jak przekonwertować z epoki Uniksa do tej pory?

  2. Czy możliwe są niestandardowe typy JPA (EclipseLink)?

  3. Jak w Postgresie mam LICZYĆ i GDZIE w tym samym zapytaniu, a następnie wykonać obliczenia matematyczne na wyniku?

  4. PostgreSQL - przywrócona baza danych mniejsza niż oryginalna

  5. wstawianie identyfikatorów wielu wierszy w psycopg2