Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Général Développement > Conception > Méthodes

Méthodes Forum d'entraide sur les méthodes : Merise, UP, XP ...

Réponse
 
Outils de la discussion
Vieux 10/06/2008, 17h56   #1 (permalink)
Membre à l'essai
 
Date d'inscription: mai 2005
Messages: 46
Par défaut Base de données > XML

Bonjour à tous,

J'ai une application (PHP / MySQL) et j'ai besoin de faire des "photos" à un instant donné, des historiques.
- ces historiques sont consultables dans l'application.
- ces historiques ne sont pas modifiables.

J'ai developpé ce module d'historiques dans l'application elle-même et ça fonctionne très bien.

Ce que je voudrais faire maitenant c'est "externaliser" ces historiques, notamment pour alleger la BD.
Je pensais donc produire / exporter ces historiques dans des fichiers XML et les consulter, derrière, dans l'application.

Etant donné que je n'ai que très peu utilisé XML, je ne suis pas sûr que ces fichiers me permettent la même souplesse qu'avec ma BD.
En gros je ne sais pas si il est possible de reproduire avec des fichiers XML la structure d'une BD.

Concrètement et en simplifiant au maximum.

Imaginons que mon application concerne des users qui repondent à des questionnaires.
Dans ma BD, j'ai mes table user (id, nom), questionnaire (id, nom), questionnaire_question (id, questionnaire_id, texte), questionnaire_user (questionnaire_id, user_id) et questionnaire_user_reponse (id, questionnaire_user_id, question_id, texte).

A priori (sans connaître ce qu'il est possible de faire avec XML) je voyais mes fichiers XML comme ça :
- un fichier par user avec à l'interieur ses données propres (id, nom, ses questionnaire_user_id)
- un fichier par questionnaires (id, nom et questions) / ou un fichier pour tous les questionnaires
- un fichier pour les reponses des users aux questionnaires

Ce que je ne sais pas c'est si on peut jouer avec differents fichiers XML, les croiser, aller piocher telle info (le texte de la question si on a son id dans un autre fichier) dans tel fichier "à la volée" etc...
Ou suis-je obligé pour chaque fichier user d'insérer toutes les données le concernant (les questions et les reponses de ses questionnaires ici)?

Merci d'avance pour vos conseils



EDIT POUR LES MODOS : j'aurais peut-être mieux fait de placer ce topic directement dans la rubrique XML, pouvez-vous le déplacer? Merci
Rei Itchido est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/06/2008, 00h09   #2 (permalink)
Responsable C++
 
Avatar de koala01
 
Date d'inscription: octobre 2004
Localisation: Musson, au milieu de nulle part en Belgique
Âge: 36
Messages: 3 153
Envoyer un message via MSN à koala01
Par défaut

Salut,

Avant de m'attaquer au noeud du problème, je te conseillerais quand même de réfléchir une fois encore à l'avantage que tu tireras d'utiliser des fichiers XML par rapport au fait d'attaquer directement la base de données.

Les cas où une application risque de surcharger un SGBDR - surtout si elle ne doit accéder à une base de données que de manière ponctuelle - sont vraiment limités .

Si des mises à jours de la BDD sont susceptibles d'arriver durant l'exécution de l'application, il est de toutes manières tout à fait envisageable de ne pas prendre les enregistrements rajoutés entre deux accès à la BDD en compte

Ceci dit, je vais considérer que tu as déjà réfléchi sereinement à la question

Tu peux tout à fait créer plusieurs fichiers XML séparés.

Cependant, tout comme il faut prévoir des relations entre les différentes tables d'une base de données, il deviendra nécessaire de créer des relations entre les différents fichiers, et surement entre les différents éléments d'un fichier donné et les éléments correspondant dans un autre

Bref, bien que ce soit tout à fait envisageable, cela me semble peut-être un chouia trop complexe à gérer...

Par contre, s'agissant de "clichés instantanés", le plus facile resterait quand même de n'utiliser qu'un seul cliché qui pourrait prendre une forme proche de
Code XML :
<instantane date="18/06/2008" time="00:06"> <!-- la date et l'heure de création du cliché --!>
    <userlist>  <!--la liste des utilisateurs et de leurs informations personnelles--!>
        <user id="koala">
              <!--toutes les informations relatives à koala--!>
        </user>
         <!--les autres utilisateurs--!>
    </userlist>
    <questionnaire id="1">  <!--es informations concernant le questionnaire--!>
        <questionlist> <!--d'abord les questions--!>
            <question id="1"> <!--la question--!>
            </question>
              <!--les autres questions --!>
        </questionlist>
        <answerlist> <!--puis les préponses--!>
            <answers by="koala"> <!--de chaque utilisateur--!>
                <answer num="1"> <!--à chaque question--!></answer>
            </answers>
        </anserlist>
    </questionnaire>
     <!--autres questionnaires--!>
</instantane>
Le fichier sera certainement plus volumineux, mais il sera bien plus facile à utiliser, surtout si tu utilise DOM (Document Object Model)
__________________
Ce qui se conçoit bien s'énonce clairement.
Et les mots pour le dire vous viennent aisément.
Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Vous avez obtenu votre réponse pensez au bouton en bas de page

A méditer: La solution la plus simple est toujours la moins compliquée
koala01 est actuellement connecté   Envoyer un message privé Réponse avec citation
NEWS CONCEPTIONTUTORIELS CONCEPTIONF.A.Qs CONCEPTIONUMLMERISELIVRES CONCEPTION

Réponse

Précédent   Forum des développeurs > Général Développement > Conception > Méthodes



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 20h17.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations