57 lines
3.2 KiB
Markdown
57 lines
3.2 KiB
Markdown
# Résumé des éléments de la base de données
|
|
|
|
## Table `projects`
|
|
|
|
Contient la liste des projets.
|
|
|
|
- `id`: int (clé primaire, auto-incrémentée et unique)
|
|
- `name`: string (nom du projet, obligatoire)
|
|
- `description`: string (description du projet, optionnelle)
|
|
- `start_date`: date (date de début du projet, optionnelle)
|
|
- `status`: int (statut du projet, obligatoire)
|
|
- Valeurs possibles: 0 (brouillon), 1 (en cours), 2 (terminé), 3 (annulé)
|
|
|
|
## Table `measurements`
|
|
|
|
Contient l'ensemble des mesures effectuées pour un projet donné.
|
|
Il peut y avoir plusieurs mesures pour un même projet.
|
|
Chaque mesure doit avoir un `id` incrémenté par rapport à la dernière mesure.
|
|
Chaque mesure contient un `timestamp`, un chemin vers un fichier image, une mesure de température et une mesure d'humidité.
|
|
Chaque mesure doit préciser si elle a été effectuée ou non (car le fichier image est généré par la caméra donc lorsque la mesure est ajoutée, le fichier n'existe pas encore).
|
|
|
|
- `id`: int (clé primaire, auto-incrémentée et unique)
|
|
- `project_id`: int (clé étrangère vers la table `projects`)
|
|
- `timestamp`: datetime (date et heure de la mesure)
|
|
- `image_path`: string (chemin vers le fichier image, optionnel)
|
|
- `temperature`: float (mesure de température, optionnelle)
|
|
- `humidity`: float (mesure d'humidité, optionnelle)
|
|
- `completed`: bool (indique si la mesure a été effectuée, obligatoire, par défaut à false)
|
|
|
|
## Table `videos`
|
|
|
|
Contient l'ensemble des vidéos générées par partir des images des mesures d'un projet donné.
|
|
Il peut y avoir plusieurs vidéos pour un même projet.
|
|
Il doit être possible de contenir la liste des `id` des mesures utilisées pour générer la vidéo.
|
|
Il doit être possible de contenir le chemin vers la vidéo générée.
|
|
Il doit contenir le `timestamp` de la première image de la vidéo et le `timestamp` de la dernière image de la vidéo.
|
|
Il doit contenir le nombre d'images utilisées pour générer la vidéo.
|
|
Il doit contenir les paramètres de la vidéo (`résolution`, `durée`):
|
|
|
|
- `resolution`: string (résolution de la vidéo, optionnelle)
|
|
- `duration`: int (durée de la vidéo en secondes, déduite soit de la durée de la vidéo, soit du nombre d'images et du nombre d'images par seconde)
|
|
- `fps`: int (nombre d'images par seconde, optionnelle)
|
|
Il doit contenir le statut de la vidéo (en cours de génération, terminée, annulée).
|
|
|
|
- `id`: int (clé primaire, auto-incrémentée et unique)
|
|
- `project_id`: int (clé étrangère vers la table `projects`)
|
|
- `measurement_ids`: string (liste des `id` des mesures utilisées pour générer la vidéo)
|
|
- `video_path`: string (chemin vers le fichier vidéo, optionnel)
|
|
- `start_timestamp`: datetime (date et heure de la première image de la vidéo)
|
|
- `end_timestamp`: datetime (date et heure de la dernière image de la vidéo)
|
|
- `image_count`: int (nombre d'images utilisées pour générer la vidéo)
|
|
- `resolution`: string (résolution de la vidéo, optionnelle)
|
|
- `duration`: int (durée de la vidéo en secondes, optionnelle)
|
|
- `fps`: int (nombre d'images par seconde, optionnelle)
|
|
- `status`: int (statut de la vidéo, obligatoire)
|
|
- Valeurs possibles: 0 (en cours), 1 (terminée), 2 (annulée)
|