Bonjour à toutes et à tous,
Et oui, encore une question concernant le même projet dont je vous parlais il y a quelques mois déjà.
Le projet en question concernait les objets connectés. Le serveur recevant les données est écrit en Java et la base de données est relationnelle et se nomme MariaDB.
J’ai cru comprendre que les bases de données relationnelles ne sont plus un choix de référence dans le domaine des objets connectés, mais j’espère malgré tout avoir fait un bon choix.
La base de données possède une table intéressante pour ce sujet, c’est la table qui contient toutes les données que peut envoyer un objet connecté au serveur. Ainsi, lorsque je décide de prendre en compte une nouvelle fonctionnalité basée sur une nouvelle donnée, j’ajoute une nouvelle colonne dans la table.
J’ai vu qu’ajouter des colonnes à une table déjà possédant déjà de nombreuses valeurs était quelque chose de simple, mais qui demandait beaucoup de temps à la machine…
A présent, ma table de données contient 34 colonnes. Toutes représentant des données différentes et potentiellement utiles (il peut y en avoir une bonne centaine…mais j’en doute). Et en réalité, seulement 5 données sont toujours présentes dans les données reçues. Et le reste est optionnel. Donc vide / initialisé avec des valeurs par défaut. Je pourrais par exemple n’avoir que 6 colones. 5 données obligatoires et une 6ème qui contiendra les données optionnelles.
Je me suis rendu compte hier que 34 colonnes, ça commençait à faire un peu gros et fouillis. Du coup, j’ai pensé au JSON ou aux Colonnes Dynamiques (choix qui est peut-être le mieux), par l’intermédiaire du type de données "Blob". Ainsi, une ligne ne possèdera que les données (colonnes) nécéssaires.
Pour en finir, je me demandais si le choix de passer de colonnes pré-définies (schémas statique) à des colonnes dynamiques serait un bon choix pour mon projet. (enfin, du peu que je vous en ai dit). Si, ce choix ne présenterait à première vue aucun gros inconvénient pour des requêtes déjà existantes, comme par exemple, la manipulation des chiffres. Puisqu’il n’y aurait plus de valeur par defaut (0 par exemple), serait-il toujours aussi simple de calculer des moyennes ou des choses de ce style ? (je vais faire des tests) La gestion des données ne deviendra-t-elle pas quelque chose de super compliqué ?
Après, si jamais je venais à chosir ce type de stockage de données, je sais très bien que des requêtes seront à adapter. C’est évident.
Désolé encore pour ce pavé.
Merci beaucoup pour votre aide, A bientôt.