Je suis nouveau à RavenDB et j'essaie toujours de trouver la meilleure façon de modéliser les données pour le scénario actuel. Voici à quoi ressemblent les données.Comment modéliser des statistiques de jeu de football dans 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
Au début de chaque jeu, nous obtenons l'information globale pour le jeu (par exemple les équipes, lieu, etc.), puis toutes les quelques minutes, nous obtenons une liste mise à jour des événements. De plus, je dois pouvoir interroger des données pour un joueur particulier en pensant au jeu (par exemple combien de passes a un joueur)
Est-ce que je le stocke comme un seul document? Dois-je scinder les événements en un document séparé, par exemple GameEvents? Y a-t-il un troisième scénario?
Si vous allez avec cette méthode, pour * la plupart * de vos statistiques, vous feriez mieux de charger le document entier (ce qui représente 1 jeu), le traiter en mémoire et ensuite le réécrire dans le document. Pour les statistiques qui sont à travers plusieurs jeux, vous pouvez regarder dans Map/Reduce –
Matt qui semble être une bonne idée. Juste pour être clair si je veux calculer des passes pour un joueur je voudrais charger le document de jeu, faire les calculs et le sauvegarder encore. – marto
@Matro, ouais c'est l'idée même s'il y a des frais généraux pour faire cela beaucoup de fois, donc Patching pourrait vous aider. http://ravendb.net/docs/client-api/partial-document-updates –