假設我們要創建一個測驗應用程式,用戶可以在其中創建具有以下特征的測驗:
- 用戶可以從一組預定義的問題中為他們的測驗選擇問題。
- 每個問題可以有多個選項(選擇);2、3、5、6、9,沒關系。
- 問題及其選擇由管理員添加(通過 Django Admin API)
我提出了一個相當簡單的架構設計:

這就是上面模式設計中發生的事情:
- 每個問題可以有多個選擇
- 在質量保證的問題映射到由誰做用戶選擇的接聽/接過測驗
- 每個提交的測驗可以有多個問題及其答案
這種方法的缺點之一是我可以將問題映射到不屬于該特定問題的選擇串列中的答案。例如,我創建了兩個問題;
- 你結婚了嗎?
- 你最喜歡的飲料是什么?
對于第一個問題,我有以下選擇:
- 是的
- 不
對于第二個問題,我有以下選擇:
- 水
- 蘇打
- 新鮮果汁
從Django Admin API,我可以映射第一個問題;你結婚了嗎?到第二個選項的選擇;蘇打
我怎樣才能避免這種情況?您認為這種方法還有哪些其他缺點?有沒有更好的方法來設計這種模式???
我正在為這個特定專案使用 Django。
uj5u.com熱心網友回復:
有不同的設計選項,但您的架構非常適合其目的(假設您希望對整個問題/答案集具有靈活性)。
我建議在 Django 中使用ModelMultipleChoiceField作為 QA 模型中的選擇欄位。它將包含一個包含相關選項的查詢集(您可以通過查詢與問題模型中的問題相關的所有選項來獲得)。這樣你就可以將選擇限制在與問題相關的那些。
如果問題/答案集是固定的并且只有選擇的問題/答案發生變化,那么可能有更好的選擇(例如,您可以使用 Django 的choices方法來定義問題的選擇,而不是將它們放在單獨的模型中)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378550.html
標籤:姜戈 数据库 django 模型 数据库设计 数据库模式
下一篇:LDAP系結失敗:LDAPOperationsErrorResult-1-OperationsError-無-000004DC:LdapErr:DSID-0C090A5C,
