Partage
  • Partager sur Facebook
  • Partager sur Twitter

Migration pickle vers base sql

    14 juillet 2019 à 19:55:09

    Hello tout le monde,

    (j'espère que je poste au bon endroit)

    J'ai actuellement un fichier enregistré avec pickle qui représente des objets assez complexes et imbriqué les uns dans les autres, j'aimerais pouvoir tranformer tout ca en base sql (ou sqlite peu importe) pour avoir un chargement plus rapide et pouvoir selectionner ce que je charge. Le problème: je suis loin d'être un pro de sql j'ai que des bases. Je vous met comment sont structurées les données pour l'instant:

    Categories

        Divers classes de stockages

               contiennent des listes/dictionnaires qui renvoie a d'autre classes de stockages

    Ce qui me gêne le plus c'est de faire les liens vers des nombres variables d'éléments

    • Partager sur Facebook
    • Partager sur Twitter
      14 juillet 2019 à 21:38:12

      Pour chaque classe de stockage tu défini une classe de stockage parente, ça doit suffire comme lien si j'ai bien compris.
      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2019 à 21:55:21

        Il y a déjà une classe de stockage parente c'est la classe Categories ;) Mais le probleme c'est: je fais comment pour transporter ca en sql ? Je vois pas comment agencer mes tables pour que ca fonctionne parce que je peux pas mettre qu'une colonne équivaut a une liste par exemple puisque les listes existent pas en sql

        -
        Edité par Coliculus 14 juillet 2019 à 21:56:37

        • Partager sur Facebook
        • Partager sur Twitter
          15 juillet 2019 à 9:37:31

          En supposant que tes données ressemblent à ça :

          categories = [
              {"nom": "aliments", "sous_categories": ["fruits", "legumes", "produits laitiers"]},
              {"nom": "fournitures", "sous_categories": ["crayons", "stylos", "cahiers"]},
          ]
          

          Ta table categories pourra ressembler à ça :

          id  |     nom     | categorie_parente
           1  | aliments    |    NULL
           2  | fournitures |    NULL
           3  | fruits      |     1
           4  | legumes     |     1
           5  | fromages    |     1
           6  | crayons     |     2
           7  | stylos      |     2
           8  | cahiers     |     2


          Tu peux faire aussi une table categorie et une table sous_categorie sur le même principe, tout dépend des données que tu as.


          Après c'est peut-être plus une question à poser sur le forum bases de données

          -
          Edité par thelinekioubeur 15 juillet 2019 à 9:38:17

          • Partager sur Facebook
          • Partager sur Twitter
            15 juillet 2019 à 11:33:51

            Ouais... pas mal ... mais ce qui m'inquiète toujours c'est: comment je vais stocker des listes dans ma base de données ? faut que je fasse pareil que pour ta colonne categorie_parente ? ca vas être monstrueux si je fais ca parce que certaine classes possède par exemple un dictionnaire d'image avec la position sur le disque, la position ou elle est à l'écran ... il me faudra rajouter soit des catégories soit encore des tables en plus pour chaque type de liste/dictionnaire qu'il y a dans les classes de stockage ?

            (Si on trouve pas je demanderais sur le forum DB et je posterais la solution ici aussi)

            En fait j'ai déjà réussi à obtenir un truc semblable à ce que je voulais en sérialisant mes list/dict avec json mais ca me posait un problème de temps de chargement qui était pire qu'avec pickle donc pas ce que je recherchais ... je me suis dis que le problème venait sûrement de mon niveau en sql

            -
            Edité par Coliculus 15 juillet 2019 à 11:41:48

            • Partager sur Facebook
            • Partager sur Twitter
              15 juillet 2019 à 12:02:20

              En principe il faut une table pour chaque type d'objet que tu as. Et tu peux avoir besoin de tables de mapping en plus (par exemple pour des tags).

              C'est probablement plus simple si tu utilises un ORM comme SQLAlchemy ou peewee. Ainsi tu définis des classes python au lieux des tables.

              -
              Edité par thelinekioubeur 15 juillet 2019 à 12:03:23

              • Partager sur Facebook
              • Partager sur Twitter

              Migration pickle vers base sql

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown