我正在創建一個基於文本的瀏覽器遊戲,並且需要django模型結構的一些建議。所有的例子都來自同一個項目,因此假設你已經從頂部到底部閱讀所有問題,我不會重複相同的信息。我的項目中的Django模型結構
第一個問題
我有一個auth
應用程序,它包含用戶的個人資料(Player
模型),alliance
應用程序,它擁有所有玩家加入工會和medals
應用程序,它代表了雙方球員和獎勵信息聯盟。
用戶和聯盟都可以分配獎牌,因此其中一個選項是創建連接到Medal
的Player
和Alliance
模型中的M2M字段。
另一種選擇將使medals
應用程序可用於我的任何其他項目。這種方法包括在Medal
模型中使用通用關係,該模型鏈接到Player
或Alliance
。
哪個解決方案更像django,或者我可以做但我想?
第二個問題
將有玩家來完成任務。任務的場景差別很大,因此我需要某種方法爲每個任務編寫獨特的任務進度檢查代碼。
任務保存在數據庫中,其中包含有關獎勵的信息(幾乎相同)。我應該在哪裏爲每項任務編寫獨特的代碼?也許我應該稍後添加一些字段和eval()?然後所有的信息將被保存在數據庫中。此外,任務需要一些跟蹤,例如,想象一下進入手動部分的簡單任務(只是爲了確保玩家知道它在哪裏)。然後我需要在某處註冊玩家是否訪問過手冊頁。我想在任務應用程序中創建另一個模型TaskTrackers
。然後出現另一個問題。如果我應該從Player
到TaskTrackers
添加OneToOne字段,反之亦然?
歸納起來,主要的問題是,是否應該我添加OneToOneFields/M2M領域的用戶配置文件模型或目標模型添加OneToOneFields/Foreigneys到用戶模式?後者會讓我的應用程序更加可重用,但第一種方法可能更符合邏輯。
等待答案。
順便說一句,如果您打算使用Django身份驗證,則調用應用程序「auth」並不是一個好主意。它也是'auth',兩個同名的應用程序不是很好(例如'manage.py test auth')。 – DrTyrsa 2012-03-20 13:27:06