我是RavenDB的新手,我仍然努力想方設法爲當前場景建立數據模型。這裏是數據的樣子。如何在RavenDB中建立足球比賽統計數據模型
Game
- Teams
- Team 1
- list of players
- Team 2
- list of players
- Events
- Event 1
- type: Pass
- teamId
- PlayerId
- Event 2
- type: Goal
- teamId
- PlayerId
在每場比賽開始時,我們得到的遊戲(例如團隊,地點等),然後每隔幾分鐘我們得到事件的更新列表的整體信息。 另外,我需要能夠查詢特定玩家在遊戲中的數據(例如玩家有多少次傳球)
我是否將其作爲單個文檔存儲?我是否將事件分成單獨的文檔GameEvents?有第三種情況嗎?
如果你使用這種方法,對於大部分統計數據,你最好加載整個文檔(代表1個遊戲),在內存中處理它,然後將其寫回到文檔中。對於橫跨多個遊戲的統計數據,您可能需要查看Map/Reduce – 2012-02-27 17:22:56
Matt這聽起來像個好主意。爲了清楚我是否想計算玩家的通行證,我會加載遊戲文檔,進行計算並再次保存。 – marto 2012-02-27 22:39:55
@Matro,是的,這是想法,雖然有很多這樣做的開銷,所以修補可能會幫助你。 http://ravendb.net/docs/client-api/partial-document-updates – 2012-02-28 00:58:00