Base de données
Malgré la présence de deux API, ce qui serait normalement accompagné de deux bases de données, nous avons choisi de n'utiliser qu'une seule base de données pour les deux API. En effet, cela rend le développement plus simple dans un premier temps, car les informations ne transitent pas directement entre les deux API. De plus, les deux API n'écrivent pas des données sur les mêmes tables, il n'y a donc pas de risque d'écrasement de données de l'autre API.
Cependant, il est possible que dans le futur, l'architecture du projet change et que les deux API aient chacune leur base de données associée.
La base de données utilisée est une PostgreSQL. Nous avons choisi cette technologie car nous l'avions déjà utilisé précédemment.
Voici le schéma de la base de données actuel :
L'organisation des tables fonctionne ainsi :
- Les tables
events,areas,standsetcamerasreprésentent chacune des entités (respectivement des évènements, des zones d'un évènement, des stands et des caméras), reliées par appartenance - A ces entités sont liées des statistiques, données par les tables
*_statistics - La table
point_cloudscontient les noms des fichiers de nuages de points et de prévisualisation liés aux zones (si un nuage de points à été défini pour une zone) - La table
cameras_configurationscontient les valeurs de configuration de base des caméras. Selon le mode de fonctionnement souhaité, les tablesglobal_cameras_configurationsetlocal_cameras_configurationsviennent compléter ces valeurs pour préciser la configuration - La table
cameras_keyscontient les clés d'API chiffrées des caméras. Les clés ne sont jamais supprimées, mais peuvent être en revanche invalidées. Une caméra possède au maximum une clé valide à tout instant - La table
userscontient les identifiants et mots de passe des utilisateurs enregistrés sur l'API. Il n'y a pas de système de permissions, tous les utilisateurs sont donc administrateurs. Il existe aussi un compte super-administrateur, non présent dans la base de données, dont les identifiants sont définis via des variables d'environnement