IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Stocker des images avec SQLite : URI ou BLOB ?


Sujet :

Android

  1. #1
    Membre régulier

    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 118
    Points : 81
    Points
    81
    Par défaut Stocker des images avec SQLite : URI ou BLOB ?
    Bonjour,

    J'ai besoin de stocker et manipuler des images pour mon application, laquelle de ces solutions vous semble être la meilleure:
    - stocker les images sur le portable de l'utilisateur, et conserver les URI dans la base de données pour les récupérer
    - stocker les images directement dans la base de données en utilisant le type BLOB

    La première solution me semble la plus facile a mettre en place, mais si l'utilisateur supprime l'image ou la renomme, ça peut poser problème, non?
    Laquelle est la plus performante?

    Merci à ceux qui prendront le temps de me répondre.

  2. #2
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    C'est surtout qu'avec la première solution, tes images seront stockées en dehors de l'APK (puisque celui-ci est figé une fois déployé), c-a-d en dehors de ton appli, typiquement sur le stockage externe (carte SD typiquement). Par exemple, si l'utilisateur desinstalles l'APK, les images restent sur la carte SD. Avec le BLOB tu n'as pas cet inconvénient.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 793
    Points
    4 793
    Par défaut
    Pour avoir utilisé les 2 solutions, en terme de performances, les 2 se valent (mais c'était sur Derby)
    Comme tu l'as dit, stocker sur disque est un peu plus facile et le risque est bien le renommage/suppression/déplacement.
    Du coup stocker dans la base est théoriquement mieux surtout si en plus de l'image tu dois ajouter des informations en relation avec l'image ;
    du genre : liste des personnes sur la photo, date de prochain rendez-vous, etc ...
    Comme cela ta base reste cohérente avec les photos, l'utilisateur ne peut pas les supprimer sans passer par l'application.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    d'un autre coté, quand tu as comme moi un smartphone avec 4G sur la carte SD et seulement 300M pour les APK, t'es content que l'appli utilise la carte SD...

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Si je ne me trompe pas depuis android 4.4 les applis doivent écrirent sur la carte SD dans un dossier "privé" qui est supprimé lors de la désinstallation de l'application.
    Si l'écriture dans la base n'est pas une contrainte technique (du genre besoin d'extraire la base avec tt ces données) j'opterait pour le stockage des URI et non d'un blob. Ça éviterais que la taille prise par ton appli ne diminue jamais même quand tu supprimes des données (par défaut sqlite grossi mais ne réduit jamais).

    Niveau performance je sais pas si y'a une vraie différence , j'ai déjà eu une appli avec plusieurs milliers d'images en blob sans problème de perf.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Affichage d'une image avec type de donnée Blob
    Par djkhalid dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/05/2013, 14h08
  2. Modifier / Supprimer image avec SQLite dans une ListView
    Par monta007 dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 08/03/2012, 12h08
  3. [Oracle] stocker une image dans oracle type BLOB
    Par dimainfo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/03/2011, 17h06
  4. [Débutante] Création d'une image avec un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/07/2004, 09h58
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo