PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

mô hình ứng dụng django đố vui cho các câu hỏi trắc nghiệm

Đối với một lược đồ cơ sở dữ liệu quan hệ được chuẩn hóa đúng cách, bạn cần một Choice riêng biệt mô hình có khóa ngoại trên 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",)

Và sau đó bạn có thể nhận được tại Question các lựa chọn của myquestion.choices.all() (và nhận câu hỏi từ Choice với mychoice.question ).

Lưu ý rằng điều này sẽ không áp đặt bất kỳ giới hạn nào đối với số lượng lựa chọn cho một Câu hỏi, thậm chí không bắt buộc một Câu hỏi phải có ít nhất một lựa chọn liên quan.

Trừ khi bạn có lý do thuyết phục để làm khác, nếu không, một lược đồ được chuẩn hóa đúng là những gì bạn muốn khi sử dụng cơ sở dữ liệu quan hệ (rdbms không chỉ đơn thuần là bitbucket, chúng cung cấp rất nhiều rất nhiều của các tính năng hữu ích - miễn là bạn có một lược đồ thích hợp, nghĩa là).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giá trị chênh lệch múi giờ máy chủ

  2. [Video] Sức mạnh của lập chỉ mục trong PostgreSQL

  3. Sửa bảng TOAST bị hỏng

  4. truy vấn db postgres với node-postgres

  5. libpq:Cách lấy mã lỗi sau khi kết nối PGconn không thành công