2014-04-13 100 views
0

我正在創建一個在線RPG,玩家可以互相對戰,並且我希望能夠在戰鬥結束後以結構化方式顯示每個「戰鬥行動」。將戰鬥和戰鬥日誌存儲在數據庫中

我最初的目標是擁有一張戰鬥表,一個屬於戰鬥的戰鬥日誌,並通過另一個表具有許多「動作」。我的想法是讓動作表中的每個記錄都有一個數字(戰鬥中發生的動作),一個戰鬥ID,然後是一個字符串,表示「玩家1攻擊玩家2造成5點傷害」。

這種方法是否存在任何明顯的問題?如果我有1000次戰鬥,每次都有100-500個動作,會不會成爲問題?如果是這樣,有一個想法更好的解決方案?非常感謝

回答

0

這種方法沒有問題。
請記住創建propper索引以快速訪問操作。

+0

將每個動作連接成一個長字符串並將它存儲在battlelog表中而不是更好? – manis

+0

取決於你想要的動作。如果你總是訪問一場戰鬥的所有行動,將它們存儲在一個列中會更快。然後你可以使用'serialize'來存儲(point,test)哈希數組,參見http://api.rubyonrails.org/classes/ActiveRecord/Base.html –