我正在嘗試爲一些個人開發創建一個簡單的Web應用程序,但是我遇到了一個障礙,我希望別人會發現這個障礙。我創建了工作班,但我不確定如何定義他們的關係,或者他們的模型是否合適。Ruby on Rails中的對象和關係
爲了討論的方便,我有以下類別已經存在:用戶,團隊,和運動員
我追求的功能是使用戶通過添加創建一個團隊一名運動員到球隊對象。其他用戶可以向球隊添加球員,也可以在球隊名單上爲現有運動員添加替代方案。基本上,我想創建一些類來包裝一系列運動員對象,我們將其稱爲AthleteArray。
如果我的理解是正確的,這是將是適當的關係:
- 所以一個團隊將有一對多AthleteArrays
- 的AthleteArray將享有以下權利─很多運動員和屬於 a 團隊
- 運動員將屬於對一個用戶,並會屬於對一個AthleteArray。
- 用戶會有很多運動員,但這將是他們參與的程度。
由於AthleteArray類將沒有任何屬性,是明智將其創建爲一個ActiveRecord對象(將它僅僅有一個ID)?有沒有另一種方法來實現這個想法(你可以定義團隊類,有一個運動員對象數組數組)?我對RoR知之甚少,但我認爲這將是一個開始web開發的好地方。任何幫助,將不勝感激。提前致謝!
編輯:運動員,隊伍和運動員陣容的名字並不重要。假設運動員基本上是一個評論,對運動員列表進行了驗證。複製是可以接受的。如果我理解所發佈的答案,我基本上應該創建一箇中間班級,並且需要他們父母的ID。
對Omar的迴應: 最後,我想添加投票系統。因此,在創建基本團隊之後,用戶可以單獨建議替換給定的播放器,用戶可以投票選出最佳選擇。舉例來說,如果我有創造了球隊chess_players的:
- 菲捨爾
- 卡斯帕羅夫
- 弗拉基米爾·克拉姆尼克
有人會點擊卡斯帕羅夫,並決定一個更好的運動員會深藍,所以這個選項會出現在Kasparov下,直到收到更多的選票。對於每個角色都會發生同樣的過程,但與評論系統不同,您無法響應「深藍」並替換其他玩家,您只需對位置編號2作出迴應,並建議其他玩家。
我編輯了我的問題。希望現在有點可以理解。感謝您的迴應! – Grantismo 2009-06-28 19:57:57