Skip to content

Schema_base_de_données

Nicolas edited this page Feb 22, 2023 · 4 revisions

schema-bdd drawio

Gestion des cartes pour un utilisateur

Decks de cartes

Un utilisateur possède des "decks" de cartes (table CardGames). Ceux-ci peuvent être publiques ou privés ; un deck public peut être utilisé lors d'une partie créée par un utilisateur qui n'est pas propriétaire du deck en lui-même.

Cartes à trous et cartes de réponse

Chaque deck possède des cartes à trous (ClozedCard), ainsi que des cartes pour combler ces trous (ResponseCards).

Une carte ne peut être affectée qu'à un seul deck.

Favoris

Un utilisateur peut ajouter un deck (le sien ou un deck publique appartenant à un autre utilisateur) dans ses favoris. Cela facilitera la sélection du deck à utiliser lors d'une partie.

Architecture d'une partie

Table Games

La table Games représente une partie. Celle contient notamment :

  • Son créateur (FK1),
  • Le vainqueur (FK2, nul tant que la partie n'est pas terminée),
  • Un deck (FK3) qui sera partagé parmi les joueurs,
  • Un code unique, qui sera utilisé par les joueurs afin de rejoindre la partie.

Une partie se déroule en plusieurs tours (relation N -> 1). Un tour de jeu est représenté par la table Rounds.

Une partie possède des joueurs, et chaque joueur possède une main (composé de cartes sans trou). Lors d'une partie, une carte du deck (le deck est partagé entre tous les joueurs) ne peut être distribuée qu'à un seul joueur (relation 1 -> N).

Table Rounds

Cette table représente un tour de jeu. Elle contient notamment le maître du tour (FK2), qui piochera une carte à trou (FK3).

Pendant un tour, les autres devront choisir une de leur carte afin de combler la lacune dans la carte du maître. Ces "cartes réponses" sont représentées et liées au tour (Round) par la table RoundResponseCard.

Une fois tous les joueurs décidés quant à leur choix, le maître devra définir la meilleure selon lui (FK4).

Table RoundResponseCard

Cette table représente la carte choisi par les joueurs afin de combler la carte à trous.

Elle est liée au tour (FK1), au joueur (FK2) ainsi qu'à la carte de réponse (FK3).

Table GamePlayers

Cette table représente les joueurs qui composent une partie.

Table GamePlayerResponseCards

Cette table représente une carte, attribuée à un seul joueur, lors d'une partie. Elle permet donc de lister les cartes (sans trou) que possède un joueur lors d'une partie.