Files
timelapse-common/infos_code/organisation_db.md

46 lines
2.3 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 un `order_id` unique pour chaque projet.
- `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, obligatoire)
- `path`: string (chemin vers le fichier image, optionnel)
- `temperature`: float (mesure de température, optionnelle)
- `humidity`: float (mesure d'humidité, optionnelle)
- `order_id`: int (ordre de la mesure, obligatoire, unique pour chaque projet)
## Table `videos`
Contient l'ensemble des vidéos générées à 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 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, obligatoire)
- `video_file`: string (chemin vers le fichier vidéo, optionnel)
- `resolution`: string (résolution de la vidéo, optionnelle)
- `duration`: int (durée de la vidéo en secondes, optionnelle)
- `status`: int (statut de la vidéo, obligatoire)
- Valeurs possibles: 0 (en cours), 1 (terminée), 2 (annulée)
- `name`: string (nom de la vidéo, optionnel)