ठीक से सामान्यीकृत संबंधपरक डेटाबेस स्कीमा के लिए, आप एक अलग Choice
want चाहते हैं 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 केवल बिटबकेट से कहीं अधिक हैं, वे एक लॉट प्रदान करते हैं। उपयोगी सुविधाओं की - जब तक आपके पास एक उचित स्कीमा है, वह है)।