Salut,
Je suis en train de faire un site pour le monitoring de structures tels que des ponts, barrages et autres éléments de Génie Civil...
J'en suis à me demander quelle structure donner à ma base (MySQL).
Voici mes contraintes :
- Les capteurs appartiennent tous à un ouvrage (pont...)
- Un ouvrage peut avoir jusqu'à 200 capteurs
- Les capteurs envoient les données à 1Hz grand maximum
- Pour chaque mesure, il me faudra stocker la date
- Je peux avoir jusqu'à 10000 structures (si le site marche bien^^)
- Je peux créer autant de bases que nécessaire pour stocker ces mesures
- Je n'ai pas a faire de liaison entre les données de différents capteurs, la plupart des requêtes consisteront à rajouter des mesures et récupérer les valeurs d'un ou deux capteurs entre deux dates.
Du coup j'ai pensé à plusieurs possibilités :
- Faire une table qui regroupe tous les capteurs, avec un champ par capteur, comme les capteurs ne renvoient pas des mesures en même temps, la plupart des champs de chaque entrée seront vides
- Faire une table par élément qui regroupe tous les capteurs d'un élément avec un champ par capteur, comme les capteurs ne renvoient pas des mesures en même temps, la plupart des champs de chaque entrée seront vides
- Faire une table qui regroupe tous les capteurs, avec un seul champ "capteur" dans lequel, pour chaque entrée, je mettrai l'ID du capteur, il n'y aura aucun champ vide mais pour chaque entrée, j'écrirai l'ID du capteur en plus de la date et de la valeur
- Faire une table par élément qui regroupe tous les capteurs d'un élément avec un seul champ "capteur" dans lequel, pour chaque entrée, j'écrirai l'ID du capteur en plus de la date et de la valeur, ca permettrait de faire plusieurs tables plus légères que celle du dessus.
- Faire une table par capteur
Voilà, je ne sais pas si c'est très clair, n'hésitez pas à poser des questions.
Cette liste n'est surement pas exhaustive, n'hésitez pas à proposer des alternatives.
Je n'ai pas parlé de faire plusieurs bases (p.ex une par élément), mais au stade où j'en suis c'est tout à fait faisable.
Je vous remercie d'avance pour votre aide.
Roland
Partager