@startuml Merise Model !define PK <> !define FK <> entity Utilisateur { UtilisateurID PK Nom VARCHAR(255) Prenom VARCHAR(255) Email VARCHAR(255) MotDePasse VARCHAR(255) DateDeNaissance DATE } entity Montre { MontreID PK Nom VARCHAR(255) Marque VARCHAR(255) UtilisateurID FK } entity Activite { ActiviteID PK DateHeureDebut TIMESTAMP DateHeureFin TIMESTAMP MontreID FK UtilisateurID FK } entity DonneeFrequenceCardiaque { DonneeID PK FrequenceCardiaque INTEGER DateHeure TIMESTAMP Latitude DECIMAL(10, 6) Longitude DECIMAL(10, 6) Altitude DECIMAL(10, 2) MontreID FK ActiviteID FK } entity Coach { CoachID PK Nom VARCHAR(255) Prenom VARCHAR(255) Email VARCHAR(255) MotDePasse VARCHAR(255) } entity Athlete { AthleteID PK Nom VARCHAR(255) Prenom VARCHAR(255) Email VARCHAR(255) MotDePasse VARCHAR(255) } entity Alertes { AlerteID PK Description TEXT DateHeure TIMESTAMP UtilisateurID FK } entity Statistiques { StatistiqueID PK Moyenne INTEGER Maximum INTEGER Minimum INTEGER Variabilite INTEGER Variance INTEGER EcartType INTEGER ActiviteID FK } entity Groupe { GroupeID PK Nom VARCHAR(255) Description TEXT } entity MembreGroupe { MembreID PK UtilisateurID FK GroupeID FK } Utilisateur --|{ Montre : Possede Utilisateur --|{ Activite : Realise Montre --|{ Activite : Utilise Montre --|{ DonneeFrequenceCardiaque : Fournit Utilisateur --|{ Alertes : Recoit Activite --|{ DonneeFrequenceCardiaque : Contient Utilisateur --|{ Statistiques : Affecte Coach --|{ Athlete : Entraine Coach --|{ Activite : Visualise Athlete --|{ Activite : Appartient Groupe --|{ MembreGroupe : Contient Utilisateur --|{ MembreGroupe : MembreDe @enduml