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 :

Modifier les données sur SQLite


Sujet :

Android

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Modifier les données sur SQLite
    Bonjour à tous!

    J'ai une petite question concernant SQLite.

    Je souhaite créer une application de recettes de cuisine avec bdd embarquée et sans recours à une connexion 3G.

    L'utilisateur entre un ingrédient et l'application retourne une liste de recettes.
    Dans cette liste, les recettes à base de viandes n’apparaissent pas car l'utilisateur a défini dans ses préférences qu'il était végétarien.
    Il veut ensuite trier cette liste selon le coût de chaque recette.

    Mes questions sont:

    Si je modifie la bdd pour la mettre à jour et que l'utilisateur télécharge la nouvelle version, devra-t-il renseigner à nouveau qu'il est végétarien ?

    Peut-il modifier/ajouter/supprimer une recette de cette bdd embarquée via son android?

    S'il a ajouté ces modifications et qu'il souhaite mettre à jour l'application en la téléchargeant à nouveau, y a t il une possibilité pour qu'il récupère ses recettes modifiées?

    Merci pour votre aide très précieuse

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Bon... alors il y a plusieurs questions:

    Si je modifie la bdd pour la mettre à jour et que l'utilisateur télécharge la nouvelle version, devra-t-il renseigner à nouveau qu'il est végétarien ?
    Je ne vois pas pourquoi... l'information qu'il est végétarien n'a rien à faire dans la base de donnée et est plutôt liée aux préférences (voir SharedPreferences)...

    Peut-il modifier/ajouter/supprimer une recette de cette bdd embarquée via son android?
    Oui c'est quand même l'intérêt d'une base SQLite....

    S'il a ajouté ces modifications et qu'il souhaite mettre à jour l'application en la téléchargeant à nouveau, y a t il une possibilité pour qu'il récupère ses recettes modifiées?
    Oui, ce doit être possible il faut voir au niveau de l'implémentation choisie.
    Il y a deux parties dans la mise à jour:
    * Mise à jour de la structure de la base elle-même: celle-ci ne doit pas influer sur les données initiales.
    * Mise à jour des données "statiques"... Là à mon avis cela pourrait-être fait indépendamment d'une mise à jour de l'appli (par un webservice par exemple), mais bon, la manière dont les "nouvelles données" sont obtenues importe peu...
    L'idée est de mettre à jour toutes les recettes, qui n'ont pas été modifiées par l'utilisateur... et de rajoute celles qui n'ont pas été supprimées...
    Ce qui implique d'avoir 2 identifiants dans la table des recettes: L'identifiant 'local' (le ID_) et l'identifiant 'fixe' (un STATIC_ID par exemple). Puis avoir deux flags: "USER_MODIFIED" et "ACTIVE"... Le premier indique que l'utilisateur a modifié la recette, le second que la recette est active.

    Ensuite on met à jour toutes les recettes de la base locale (depuis une autre base/table) en fonction du STATIC_ID si USER_MODIFIED='N' et ACTIVE='Y', on ajoute toutes les recettes dont le STATIC_ID n'est pas dans la base locale, on supprime toutes les recettes dont le STATIC_ID n'est pas dans l'autre base....

    Et voila... L'utilisateur rajoute une recette ? pas de STATIC_ID => pas de mise à jour / suppression inopinée.
    L'utilisateur modifie une recette ? le USER_MODIFIED passe à 'Y' => pas de mise à jour / suppression.
    L'utilisateur supprime une recette ? elle reste supprimée.

    Quand je parle d'une autre base, ca pourrait être la 'même' base avec une autre table pour les recettes statiques... avec à la clé une récupération simple de l'état initial.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup nicroman!

    N'ayant pas d'expérience dans les webservices :

    Est-ce que cela vaut le coup de faire appel à un webservice ? (complexité, payant/gratuit) ?

    Et si nous décidons au final de passer par un webservice afin que l'utilisateur récupère ses données à chaque mise à jour, peut-on alors envisager de mettre en place l'option "saisie de commentaires" ?

    Car pour moi webservice -> connexion 3G -> serveur où l'on peut stocker des commentaires et lire ceux des autres.

    Après il n'y aura plus qu'à choisir

    Merci d'avance !!

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Non... webservice = service de gestion de données... invisible pour l'utilisateur (donc pas de commentaire).

    Rien n'empêche, dans l'application, de proposer de poster des commentaires (mais c'est déjà géré par GooglePlay).
    L'interêt du service dans ce cas est de proposer un mise à jour des données automatique (toutes les 24h par exemple), et complètement transparente pour l'utilisateur.

    La mise à jour "google play" est alors une mise à jour de code uniquement (l'application elle même).

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci encore. Grâce à ton aide nous avons enfin établi l'architecture finale de notre application :

    -Une base de données Sqlite (elle contiendra toutes les recettes)
    -Un web service permettant la mise à jour de l'application

    Pour expliquer cette architecture sous forme détaillée, nous aimerions faire un diagramme de classes. Voici les différentes tables :

    -Ingredient
    -Recette
    -Lien_recette_ingredient
    -Preferences_utilisateur (vegetarien: bouléen par exemple)
    -Login
    -Logout

    Il parait cependant que certaines classes lorsque l'on développe sous Android viennent s'ajouter comme les "Views".
    J’essaie de trouver des diagrammes complets afin de m'en inspirer mais j'ai l'impression que chaque diagramme (et donc ses classes) dépend vraiment de ce que l'on souhaite faire de l'application.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Tu confonds deux choses dans ton dernier message.

    Un diagramme de classe est un schéma représentant l'architecture logicielle. Sont généralement représentés dedans les classes, les attributs, les prototypes de méthodes, les paquetages, les liaisons possibles.

    Dans ton message, tu parles de l'organisation de la base de données, donc plutôt du schéma de celle-ci. Celui-ci reprend les tables, les liaisons entre elles, les clés, les champs, les types.

    J'ai l'impression que tu cherches plus un schéma de BDD. Malheureusement, ce genre de chose est très spécifique à l'application et il y a plusieurs manières de représenter les mêmes données, dépendant de leur utilisation et de la volonté du stockage. Un peu de logique simple suffit pour faire un schéma utilisable, mais pas un bien utilisable, évolutif et optimisé. Par contre, pour ça, il faut connaître un peu ce qu'est une BDD, comment ça se manipule et comment ça s'interroge.

    Je te conseils donc de regarder des cours basiques de BDD (vu ce ceci semble être inconnu pour toi), ou de chercher encore et encore des schémas. Ce que tu veux faire ici est assez classique, il y a donc la possibilité de trouver tout fait (ou sous forme d'exercice post-bac).

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/05/2012, 18h57
  2. Réponses: 2
    Dernier message: 31/01/2012, 14h33
  3. Modifier les données personnelles sur PHP Yellow Pages
    Par aRKhamTaro dans le forum Certifications
    Réponses: 2
    Dernier message: 10/07/2009, 10h41
  4. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 18h21
  5. [Crystal Reports 10] Modifier les données d'un état
    Par jidea dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/08/2004, 19h16

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