我正試圖設計一個應用程序的模型,允許2人互相打賭(我知道,聽起來很愚蠢......)。我想知道的是如何將賭注與用戶連接起來。該結構是這樣的django設計模型結構
|-------------| |----------|
| Bet | | User |
| BetUser1 | |----------|
| BetUser2 |
| Winner |
| ... |
|-------------|
所以我們用了2人,與對方打賭(均爲Users
從Django的身份驗證系統),然後其中一人獲勝後,有一個贏家。現在,所有這3個領域是User
類型,但:
- 我應該BetUser1和BetUser2獨立的領域,或在這裏設計一些許多對二的關係? (其中多到二爲多對多,並且有一些外部方式可以確保每個投注都不會分配2
Users
? - 贏家只能是用戶1或用戶2,其他人當然,我應該如何創建這個領域,另一個
ForeignKey(User)
,或者一些別的嗎?
只是在尋找的觀點一些新鮮的點,因爲它似乎在這樣的情況下,愚蠢的我卡與Django的模型系統。
這需要一個約束來限制它爲同一個Bet的兩個Wager實例。我建議添加一個方法來檢查這個,並且在有人試圖爲給定的投注保存第三個投注時引發異常。 – 2008-10-31 13:44:26