Data Base - SaigoNoo/GetTheBeer GitHub Wiki

Voici la V1 de la db, elle est encore à discuter

db_v1

Les Tables

  1. Utilisateurs
    Cette table contient toutes les informations de base sur chaque utilisateur, comme son nom, son prénom, son pseudo, son email, sa photo et son mdp. C’est ici qu’on garde les infos de chaque joueur.

    • user_id : Un identifiant unique pour chaque utilisateur
    • nom : Le nom de l’utilisateur
    • prenom : Le prénom de l’utilisateur
    • pseudo : Le pseudo utilisé par l'utilisateur
    • email : Le mail unique de chaque utilisateur
    • image : L’URL ou la photo directement si c'est possible
    • mot de passe : Le mot de passe de l'utilisateur
  2. Amis
    Cette table gère les relations d’amitié entre les utilisateurs. Un utilisateur peut être ami avec un autre, et ces relations sont bidirectionnelles (c’est-à-dire que si A est ami avec B, alors B est aussi ami avec A) - ce choix est personnel 🤷‍♂️

    • user_id_1 et user_id_2 : Ces champs indiquent qui est ami avec qui. Ce sont des références aux utilisateurs dans la table Utilisateurs
  3. Bières
    Chaque utilisateur peut gagner des bières en jouant. Cette table suit le nombre de bières restantes pour chaque utilisateur, en prenant en compte celles qu’ils ont gagnées ou perdues lors des jeux.

    • user_id : Référence à l'utilisateur dans la table Users
    • bières_restantes : Le nombre de bières que l’utilisateur a actuellement
  4. Niveaux
    Les utilisateurs montent de niveau au fur et à mesure qu'ils accumulent des bières et progressent dans le jeu. Cette table définit les différents niveaux avec le nombre minimum de bières nécessaires pour atteindre chaque palier. ( par ex 1 bière = baby player, 20 = novice , ..., 1000 = roi des alcolos )

    • level_id : Un identifiant unique pour chaque 'niveau'
    • level_name : Le nom du niveau (par exemple, "bébé joueur", "novice", etc.)
    • min_bieres : Le nombre de bières nécessaires pour atteindre ce niveau
  5. Niveau utilisateur
    Cette table lie chaque utilisateur à un niveau spécifique et garde une trace de son XP et de la date à laquelle il a atteint ce niveau. Cela permet de suivre la progression des utilisateurs dans le jeu.

    • user_id : Référence à l'utilisateur dans la table Users
    • level_id : Référence au niveau atteint par l’utilisateur dans la table Levels
    • xp : L'XP actuel de l’utilisateur
    • date_atteint : La date à laquelle l’utilisateur a atteint ce niveau
  6. GJeux Chaque jeu est enregistré dans cette table. Elle contient des informations sur les deux joueurs qui ont participé, le gagnant, et le nombre de bières mises en jeu lors de la partie. Cela permet de suivre l’historique des jeux et de savoir qui a gagné chaque partie. ( pour alimenter la page historique )

    • game_id : Identifiant unique de chaque jeu
    • date : La date du jeu
    • joueur_1_id et joueur_2_id : Références aux deux joueurs qui ont participé à la partie
    • gagnant_id : Référence au joueur qui a gagné le jeu
    • bières_en_jeu : Le nombre de bières mises en jeu lors de cette partie

Relations entre les tables

  • utilisateurs et amis : Les utilisateurs peuvent avoir des amis, et ces relations sont enregistrées dans la table amis. L’amitié est bidirectionnelle, ce qui signifie qu’un enregistrement dans cette table montre que les deux utilisateurs sont amis.
  • utilisateurs et bières : Chaque utilisateur a un nombre de bières restants, qui est suivi dans la table bières. Ce nombre change en fonction des jeux auxquels il participe.
  • utilisateurs et niveau utilisateur : Chaque utilisateur peut avoir un niveau particulier, et cette table permet de suivre l’évolution de leur XP et leur progression à travers les différents niveaux du jeu.
  • jeux : Chaque jeu implique deux joueurs et un gagnant. La table jeux garde une trace de tous les jeux joués, ainsi que des bières en jeu et du gagnant.

V2

Entité-relation

gtb_er drawio

Relationnel

U = unique ∅ = possible null

gtb_rel drawio

Modification de la v1

  • Le tableau bière est supprimer étant un simple nombre
  • Le titre est lié aux niveaux
  • Nouvelle table entre Utilisateurs et Jeux
  • La table jeux contient le gagnant de la partie (id)