@startuml !define ENTITY entity !define PK "P" !define FK "F" skinparam { BackgroundColor LightYellow ArrowColor Black Shadowing false } package "Base de Données PostgreSQL" { ENTITY Utilisateur { + ID_Utilisateur INT (PK) Nom VARCHAR(255) Prenom VARCHAR(255) Adresse_e_mail VARCHAR(255) Mot_de_passe VARCHAR(255) Date_de_naissance DATE Autres_informations_de_profil TEXT } ENTITY Montre { + ID_Montre INT (PK) Nom_de_la_montre VARCHAR(255) Marque_de_la_montre VARCHAR(255) Numero_de_serie VARCHAR(255) ID_Utilisateur INT (FK) } ENTITY Activite { + ID_Activite INT (PK) Date_et_heure_de_debut TIMESTAMP Date_et_heure_de_fin TIMESTAMP Type_d_activite VARCHAR(255) ID_Utilisateur INT (FK) ID_Montre INT (FK) } ENTITY AnalyseFrequenceCardiaque { + ID_Analyse INT (PK) Frequence_cardiaque INT Date_et_heure_de_l_analyse TIMESTAMP Donnees_GPS TEXT ID_Activite INT (FK) } ENTITY Alerte { + ID_Alerte INT (PK) Type_d_alerte VARCHAR(255) Date_et_heure_de_l_alerte TIMESTAMP Description_de_l_alerte TEXT ID_Utilisateur INT (FK) } ENTITY Ami { + ID_Amitie INT (PK) ID_Utilisateur INT ID_Ami INT (FK) } ENTITY Athlete { + ID_Athlete INT (PK) ID_Utilisateur INT (FK) ID_Coach INT (FK) } Utilisateur ||--o{ Montre : Possede Utilisateur ||--o{ Activite : Realise Activite ||--o{ AnalyseFrequenceCardiaque : Comprend Utilisateur ||--o{ Alerte : Recoit Utilisateur }--o{ Ami : EstAmiAvec Utilisateur ||--o{ Athlete : EstAthlete Montre }--o{ Activite : Appartient Montre }--o{ AnalyseFrequenceCardiaque : Appartient } @enduml