2011-11-19 78 views
0

我正在嘗試創建一個rails應用程序,其中每個用戶模型可以有單個團隊模型和單個體育場模型,並可能在單個聯盟中競爭。每個球隊都包含球員,單個教練,單個廚師等,每個體育場包含一個酒店,一個停車場等。Howto設計模型

可以理解的是,所有這些球員,教練等都將影響球隊獲勝的機會和水平停車場和酒店等將會影響一段時間內賺取的收入。

這個問題(起源於我不是程序員的事實)是我無法決定所有這些球員,教練,廚師,酒店,停車場等應該是單獨的模型還是團隊的屬性和體育場模型。畢竟,如果用戶將酒店從1級升級到2級,則體育場的價值可能會乘以1.2。但我認爲,爲了更符合比賽條件(目標,戰術,傷病等)的實際計算,可能更適合分開模型。所以我知道這取決於功能或遊戲機制。但由於我在這些領域沒有經驗,我無法計劃基地。任何人都可以提出建議

任何人都可以澄清這個問題嗎?我已經閱讀了許多MVC文章,但我仍然很難理解MVC。

回答

0

首先,這是一個關於模型的問題,而不是MVC。這裏有一些想法,當需要的模型(或沒有):

  • 有要保持原始(字符串,數字,日期)的值,則不需要額外的模型。所以例如如果你只想存儲體育場的價值(不管那是什麼),那麼就沒有必要爲此創建一個Stadium模型。
  • 如果您的可能模型有多個要保留的值,則需要創建一個附加模型。看起來不自然,例如, stadium_value,stadium_name,stadium_size,...
  • 如果你的可能模型不僅有屬性,而且有行爲,定義該行爲(作爲方法)的自然地方就是模型類。所以如果你想計算例如您的體育場的value通過結合您的模型的其他屬性,模型Stadium是自然的地方。

這都是獨立於Rails的,對於所有基於對象或面向對象的語言都是如此。

加法 如果沒有您的全部知識是很難決定的。最後,我們討論如何從數據庫中檢索和存儲模型對象,以及如何在瀏覽器中顯示它們。只要一個可能的模型對象是只有一個值(如培訓師的名字),它更快,更容易實現並顯示在瀏覽器中。當時你需要的不僅僅是教練的名字,而是休息。因此,請提前做足夠的設計,以清楚哪些是真正的模型對象,並在發現錯過時儘早做出反應。

PS:不被所有程序員,你將面臨一個困難時期使用Rails實現它...

+0

如果我理解正確的話,你認爲只有一個用戶,一個團隊,一個體育場模型是不夠的,因爲停車場,酒店等將存儲單一的價值。但是團隊模型並不適合,因爲例如教練模型將包含許多屬性,如名稱,防禦力,攻擊力等等。因此,不需要將屬性雜亂得多。 – barerd

+0

添加了一些東西給我的答案,希望它更清楚一點。 – mliebelt

+0

非常感謝你,我正在考慮問你究竟加了什麼! – barerd