Forum PHP 2020
La parole est aux speakers : Jonathan Van Belle
Jusqu’au Forum PHP 2020, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !
La conférence
JSON en base de données, manipulons un peu celaUne base de données relationnelle moderne peut facilement gérer du JSON. Avec quelques connaissances, vous pouvez facilement enrichir le comportement de votre modèle de données avec un soupçon de JSON. Nous verrons donc, comment utiliser certaines fonctionnalités avancées de mysql / mariadb et postgresql afin d'effectuer certaines recherches, créer des index, utiliser des colonnes virtuelles, etc. Au final, nous verrons que dans bien des cas, un peu de JSON résout pas mal de soucis, qu'une table ou plusieurs colonnes en plus, auraient rendu plus compliqué. |
Katherine Johnson 23/10/2020 12:10-12:30 |
Qu’est-ce qui fait de JSON le format le plus adapté pour stocker des données non structurées en base ? Existe-t-il des formats alternatifs ?
JSON est structuré, mais souvent la structure fluctue fortement 🙂 Ce qui est intéressant avec le format JSON, c’est surtout qu’il nous est connu. C’est lisible par un humain, lisible par un ordinateur et dans le monde du web, c’est connu de toutes et tous ou presque. Il est aussi facile à réparer en cas de souci. C’est aussi une structure de donnée indépendante, qui n’est pas soumise à variation en cas de changement des choses, comme peut l’être un serialize (évolution des noms de classe, éventuellement incompatibilité avec des montées de version PHP, etc) et donc lisible par d’autres langages de programmation.
Des alternatives existent et elles vont vraiment varier d’un besoin à l’autre. JSON est requêtable en base de données depuis un certain temps déjà, avec des fonctions propres, là où d’autres formats ne le sont pas. Des alternatives pourraient-être : serialize/ubnserialize, JSONB (JSON sous format binaire), BSON (JSON binaire, mais limité), système de hashing… Il en existe beaucoup en fait, mais moins connus. Certains sont inspirés des nouveaux formats d’envoi par le réseau, d’autres sont d’anciennes pratiques. Et en fonction de votre infrastructure, d’autres possibilités s’ouvrent, mais là on s’écarte de la question je pense.