Partage
  • Partager sur Facebook
  • Partager sur Twitter

Type de données en JSON

Sujet résolu
    20 septembre 2019 à 13:49:38

    Bonjour, 

    J'utilise un framework PHP pour le développement de mes applications et dans l'un de ses composants, il stocke les informations en base de données au format JSON. Je sais que le JSON est couramment utilisé en web mais je me pose la question de l'avantage de ce format pour stocker les informations en base de données. 

    Les données en question concerne des changements d'états pré-défini de l'objet manipulé dans l'application. Au départ, j'avais modélisé les données pour les stocker dans tables. J'avais donc : 

    - 1 table de référence avec le nom des états

    - 1 table de suivi : pour chaque objet cette stockait qui avait rédigé le document, qui l'avait relu et qui l'avait validé et pour chaque étape la date. 

    - 1 table de transmission : le relecteur/validateur peuvent être différent du rédacteur et multiple (un document peut être relu plusieurs fois) et cette table me permettait de savoir qui était à l'origine de la transmission et son destinataire. 

    - Un dernière table me permettait de stocker s'il y avait eu plusieurs relectures avec des commentaires associés. 

    Ca en fait des tables :lol: Dans l'ensemble, ça faisait beaucoup d'informations stockées et peu de redondance (il me semble). 

    Dans le nouveau format, la table de référence saute puisque définie directement dans le composant et les autres sont dans un format JSON de type : 

    [{"time" : "", "context" : [], "etat" : "nom_etat"},{"time" : "", "context" : [], "etat" : "nom_etat"},{"time" : "", "context" : [], "etat" : "nom_etat"} , etc...]

    Dans le tableau context je stocke des informations qui dépendent de l'état, c'est-à-dire à la rédaction le nom du rédacteur, dans le cas d'une transmission l'émetteur et le destinataire, ou encore un commentaire. Je retrouve donc toutes les informations des tables décrites. 

    Je me pose alors la question de l'intérêt d'utiliser ce type de format puisque ça casse certaines règles de la modélisation (comme l'unicité?). Aussi, comment je peux exploiter de telles données en SQL ? 

    Voilà, j'espère avoir été claire, merci ! 

    • Partager sur Facebook
    • Partager sur Twitter
      20 septembre 2019 à 14:46:03

      Bonjour,

      En effet la première forme normale (atomicité) n'est pas respectée avec ce principe de stockage JSON ...

      De plus il n'y a pas de gestion de contrainte d'intégrité (clé étrangère notamment).

      Ce fonctionnement est toutefois répandu ... il a l'avantage de faciliter la gestion des données côté applicatif ... mais l'inconvénient de compliquer la gestion des données côté SGBDR ...

      En bon intégriste, je te dirais que la gestion des données (intégrité notamment) doit être assurée par le SGBDR et non l'application, car ta base doit rester cohérente même si ce n'est pas l'application prévue au départ qui communique avec ...

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        23 septembre 2019 à 12:19:44

        Atomicité ! Merci, je ne me souvenais plus du terme exact !

        J'avoue faire partie du clan "intégriste" aussi et je vais garder mon schéma de données propres qui est par ailleurs beaucoup plus facile à exploiter. J'ai tenté de "traduire" mes anciennes requêtes avec les données au format JSON et c'est l'horreur, ce n'est pas du tout clair comme notation de données. 

        Merci pour ta réponse !  

        • Partager sur Facebook
        • Partager sur Twitter

        Type de données en JSON

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown