Partage
  • Partager sur Facebook
  • Partager sur Twitter

choix de base de données

choisir entre une bdd sql ou nosql ?

    15 mai 2019 à 15:53:05

    Bonjour,

    je me suis mis au javascript pour la partie front-end d'un site personnel. Je souhaiterais adosser à ce site une base de données.

    Étant enseignant, j'ai pour objectif de créer une appli d'évaluation de mes élèves à propos des tables de multiplication.

    je souhaiterais pour chaque élève, que pour chaque opération je connaisse le temps de réponse, le nombre d'essais effectués...afin d'évaluer leur progression et leur niveau de maîtrise.

    j'ai donc imaginé un tableau de saisie reprenant les champs suivants (et un exemple):

    pseudoElève            (azerty)   

    opérationProposée   (7 x 6)   

    table de                    (6 )

    RéponseJuste            oui (boolean)         

    tempsRéponse          12 (s)

    Les requêtes que je souhaite effectuer sont assez simples :

    - pour le pseudoElève afficher toutes les opérationProposée dont RéponseJuste est true et tempsRéponse < 4s

    - pour le pseudoElève afficher sous forme de courbe pour une opérationProposée l'évolution des tempsRéponse

    - afficher dans un tableau html pour le pseudoElève l'ensemble des tables de multiplication avec le codage couleur suivant :

                 - opération grisée : non travaillée encore

                 - opération rougie : travaillée mais soit réponse fausse soit temps de réponse trop long

                 - opération verdie (vert clair): travaillée et réussie 1 fois

                 - opération verdie (vert foncée) : travaillée et réussie 3 fois au moins.

    Voilà ce sont des requêtes assez simples :

    ce qui me fait dire qu'une BDD mysql serait plutôt adaptée mais m'oblige à apprendre le PHP et à comprendre comment faire passer des valeurs saisies par JS à PHP et vice-versa.

    D'où ma seconde hypothèse, passer par une BDD JSON-mongoDB qui me permettrait de travailler seulement avec JS.

    Le souci dans ce cas c'est que ne sais pas du tout comment structurer un document JSON en partant du tableau conçu plus haut. J'avais imaginé ceci.

    pseudo    azerty

    Objet « infoOpérations »

    {

    String tableDe = « 2 » ;

    string operation = « 2 x 3 = » ;

    const résultatOpération = 6 ;

    array tpsRéponse :[temps1, temps2,temps3…]

    boolean acquis : false, true;

    }

    Donc voici mes questions :

    Quelle type BDD choisir ?

    Si sql et PHP, est-ce compliqué de transférer valeurs de PHP <--> JS ?

    Les structures de mes BDD sont-elle judicieuses ?

    Je vous remercie.

    -
    Edité par DavidCerda 15 mai 2019 à 16:00:10

    • Partager sur Facebook
    • Partager sur Twitter
      15 mai 2019 à 17:24:32

      Bonjour,

      Tu peux communiquer directement avec MongoDB en JavaScript sans passer par un langage côté serveur ? Je ne savais pas ...

      Ton application sera-t-elle disponible en ligne ou seulement en local sur un seul ordinateur ? Les données devront-elles être disponible sur Internet ou seulement en local ?

      Sinon concernant le choix NoSQL / SQL, je dirais que dans ton contexte peu importe ...

      Il faudrait peut-être clarifier si ton modèle va se complexifier ou non. Vas-tu créer des comptes pour les élèves, avec un système de connexion, un gestion de groupe d'élèves (classe) par année, etc. Si tu t'avances dans ces notions, tu vas plutôt avoir besoin d'intégrité référentielle et donc faire pencher la balancer vers SQL, d'autant que j'imagine que les volumes de données et de sollicitations de la base ne devraient pas être énorme dans ton contexte ...

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        17 mai 2019 à 9:32:05

        @Benzouye,

        Bonjour,

        effectivement je m'exprime mal car je débute : si j'ai bien compris Mongo db doit fonctionner avec un serveur (Node.js ?)

        Alors tu me conseilles SQL

        Ce qui m'enquiquine le plus avec PHP ET MYsqL c'est que je ne sais pas comment convertir des variables PHP en variables JS (et vice-versa) ni dans quel type de fichier réaliser cette conversion  en faisant cohabiter les 2 langages. (dans un fichier php intégrant un script js ? ou directement dans une page html ?)

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          17 mai 2019 à 10:45:45

          DavidCerda a écrit:

          Mongo db doit fonctionner avec un serveur (Node.js ?)

          Je ne suis pas catégorique sur ce point, mais j'en suis presque sûr ... Après ce n'est pas forcément NodeJS, la plupart des langages serveur ont une API pour communiquer avec MongoDB : PHP, NodeJS, Java, Python, etc.

          C'est vrai que le couple NodeJS/MongoDB est le plus pratiqué, mais tu pourrais utiliser PHP/MongoDB, NodeJS/PostGreSQL, Java/MongoDB, Java/MySQL, etc.

          DavidCerda a écrit:

          Alors tu me conseilles SQL

          Non, je dis qu'en l'état il n'y a pas suffisamment de contraintes décrites dans ton contexte pour décider lequel des deux (SQL et NoSQL) est le plus pertinent. Personnellement je trouve plus pratique SQL parce que c'est celui que je connais le mieux, mais je ne dis pas que c'est le plus pertinent ici ...

          DavidCerda a écrit:

          Ce qui m'enquiquine le plus avec PHP et MySQL c'est que je ne sais pas comment convertir des variables PHP en variables JS

          Le principe de fonctionnement va être assez simple en fait ...

          Tu codes en HTML/JavaScript ton front-end.

          Tu ajoutes des appels AJAX pour les actions CRUD nécessaires en base de données (create, read, update, delete).

          Ces appels vont solliciter un fichier PHP côté serveur en lui passant des variables (GET et/ou POST).

          Ce fichier PHP va :

          • se connecter à la base de données (SQL ou NoSQL peu importe) avec l'API dédiée
          • faire les opérations CRUD demandées en fonction des variables passées en paramètre par AJAX
          • retourner à AJAX le résultat, le plus pratique étant d'utiliser le format JSON avec la fonction PHP json_encode

          Au lieu d'utiliser PHP, tu peux très bien utiliser un autre langage côté serveur pour faire la même chose ... Si tu as des affinités avec JavaScript, NodeJS peut être intéressant puisque c'est une syntaxe JavaScript, mais considère quand même qu'il y aura une courbe d'apprentissage selon moi plus raide qu'avec PHP.

          En gros je te donnes des billes pour décider par toi-même ... Je ne pourrais faire le choix à ta place :p

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

          choix de base de données

          × 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