Partage
  • Partager sur Facebook
  • Partager sur Twitter

Où mettre ma base de données ?

Sujet résolu
    4 août 2021 à 16:28:47

    Bonjour à tous,

    Si je constitue un script "bulletin.py" qui utilise une base de données, est-ce que je dois envisager la maintenance de cette base de données

    - dans le même script "bulletin.py" ?

    - dans un script séparé "notes.py" ?

    - dans un module "notes.py", sans y mettre « if __name__ == "__main__": » ?

    Ma question est donc : où dois-je mettre ma base de données pour pouvoir la travailler, la modifier, y mettre les notes , calculer les moyennes etc. ?

    • Partager sur Facebook
    • Partager sur Twitter
      4 août 2021 à 17:58:56

      Comment ouvres-tu ta base de données?
      Tu donnes forcément le chemin relatif ou absolu de l'endroit où se trouve ce fichier.
      Je ne vois pas le sens de ta question.
      Tu peux écrire autant de scripts que tu veux pour en faire la maintenance.
      Je la mettrait dans un dossier qui serait à l'abri de destructions accidentelles.
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        4 août 2021 à 18:48:58

        Je pense que tu confonds plusieurs choses.

        la base de données ce sont tes données, qui peuvent être par un gestionnaire de base de données (mysql, sql serveur, mariadb, sqlite) ou pas (la base peut être un ou plusieurs fichiers texte ou autres (csv, excel, ...)

        L'emplacement dépend essentiellement de qui a besoin d'avoir accès à cette base (et également de l'emplacement du gestionnaire de base de données). Est-ce que ce sont plusieurs personnes au sein d'un même réseau ? est-ce que ça doit être accessible depuis internet ? etc etc?


        La maintenance de la base de données devrait se faire en dehors d'une application d'utilisation de la base (ou dans une partie accessible à ceux qui doivent la maintenir) ou directement via le gestionnaire de base de données.
        Mais qu'est-ce que tu appelles maintenance ?

        que doit/peut faire l'utilisateur de bulletin.py ? Est-ce qu'il peut ajouter/modifier des notes (=mettre à jour la base) et faire les calculs ? 

        L'emplacement est secondaire (ça influera en principe juste la chaine de connexion à la base)

        • Partager sur Facebook
        • Partager sur Twitter
          4 août 2021 à 19:46:49

          Merci à vous deux de vos réponses.

          J'ai eu un peu de mal à formuler ma requête, je conçois qu'elle vous ait un peu "dérangés" pour que vous puissiez y répondre.

          Cela dit, elles m'apportent les précisions que j'attendais.

          - D'abord, je précise que je suis le seul utilisateur (ni réseau, ni Internet, seulement "localhost")

          - J'ai un script "bulletins.py" qui sera alimenté par les notes venant d'une base de données : grâce à ce script, j'obtiendrai, non seulement, les listings des notes de tous les élèves dans chaque matière, mais aussi, les sorties-imprimante des bulletins individuels.

          - J'ai un autre script "notes.py" dont j'assurerai la maintenance : j'entends par maintenance, l'ajout des notes, des coefficients, des matières à des moments qui diffèrent dans le temps, les modifications ou changements en cas de nécessités, etc.

          Compte tenu de mon inexpérience dans la programmation Python, je me demandais si ces deux scripts devaient obligatoirement coexister dans un même fichier .py, ou si je pouvais envisager deux fichiers distincts (et même indépendant pour "notes.py"), le fichier "bulletins.py" ayant une liaison avec le fichier "notes.py".

          C'est cette réponse, Umfred, que j'attendais :

          "La maintenance de la base de données devrait se faire en dehors d'une application d'utilisation de la base (ou dans une partie accessible à ceux qui doivent la maintenir)"

          Et la réponse de Pierrot m'intéresse en ce sens que je comprends que ma base de données peut être dans un autre répertoire ("Je la mettrait dans un dossier qui serait à l'abri de destructions accidentelles.") : dans ce cas, j'ai besoin de savoir comment préciser le chemin de ma BD "notes.py" dans mon script "bulletins.py".

          Merci encore à vous deux.


          -
          Edité par chrisblues59 4 août 2021 à 19:50:01

          • Partager sur Facebook
          • Partager sur Twitter
            4 août 2021 à 22:42:23

            chrisblues59 a écrit:

            - J'ai un autre script "notes.py" dont j'assurerai la maintenance : j'entends par maintenance, l'ajout des notes, des coefficients, des matières à des moments qui diffèrent dans le temps, les modifications ou changements en cas de nécessités, etc.

            La maintenance de la base de donnée, c'est faire des sauvegardes ou des mises à jour.

            Tout ce qui est donné ou schéma (les tables et leurs relations) relève de la maintenance des applications qui utilisent la base de données (puisqu'elles devront prendre en compte des évolutions des données....). Ce que vous appelez maintenance, c'est juste la mise à jour de données et c'est une fonctionnalité de l'application

            chrisblues59 a écrit:

            Compte tenu de mon inexpérience dans la programmation Python, je me demandais si ces deux scripts devaient obligatoirement coexister dans un même fichier .py, ou si je pouvais envisager deux fichiers distincts (et même indépendant pour "notes.py"), le fichier "bulletins.py" ayant une liaison avec le fichier "notes.py".

            Imaginez programmer avec un langage autre que Python, les données persistantes (fichiers textes ou autres) sont indépendantes du langage. Dire si on doit créer 2 programmes (2 scripts qui se lancent indépendamment) ou un seul (tout dans le même script) change la vie de l'utilisateur (ce qu'il va devoir faire pour...) et savoir où le(s) programme(s) vont chercher les données que çà affiche ne va l'intéresser que lorsque ça n'affiche pas ce qu'il attend.

            Bienvenue dans la programmation où on ne mélange pas le point de vue de l'utilisateur (celui pour qui on fabrique un outil/programme), du programmeur (celui qui écrit le code) et le mainteneur (qui va faire des sauvegardes, des restaurations, des mises à jours, ...) et pour compliquer les choses, une application se divise aussi en "point de vues".

            • Partager sur Facebook
            • Partager sur Twitter
              5 août 2021 à 11:03:07

              bulletins.py et notes.py n'ont pas de liaison entre eux, leur seul point commun c'est la base de données: bulletins lit les données; notes y mets les données (notes, matières, élèves)

              Pour le chemin de la base de données, ça dépend de celle-ci, si c'est via mysql ou sql server, on utilise une chaine de connection pour se connecter à la base (la base étant dans un dossier data mais on n'a pas forcément besoin de savoir où elle se trouve, c'est mysql/sql server qui fait la liaison. Si ce sont des fichiers autres (type texte, csv, ...) c'est à toi de définir leur emplacement le plus "pertinent"

              • Partager sur Facebook
              • Partager sur Twitter
                5 août 2021 à 17:31:27

                Umfred :

                [bulletins.py et notes.py n'ont pas de liaison entre eux, leur seul point commun c'est la base de données: bulletins lit les données; notes y mets les données (notes, matières, élèves)]

                Moi :

                Oui, c'est comme ça que je conçois mes deux scripts qui sont séparés.

                Umfred :

                [Pour le chemin de la base de données, ça dépend de celle-ci, si c'est via mysql ou sql server, on utilise une chaine de connection pour se connecter à la base (la base étant dans un dossier data [...]

                Moi :

                Si la base de données reste dans le même répertoire, on n'a pas besoin de préciser le chemin. Mais si la base se trouve dans un autre répertoire, comment l'indique-t-on au script appelant ? Je suis sur "sqlite".

                Comment fait-on pour citer une partie de la réponse du "forumeur" ?



                -
                Edité par chrisblues59 5 août 2021 à 17:35:31

                • Partager sur Facebook
                • Partager sur Twitter
                  5 août 2021 à 18:31:59

                  chrisblues59 a écrit:

                  Si la base de données reste dans le même répertoire, on n'a pas besoin de préciser le chemin. Mais si la base se trouve dans un autre répertoire, comment l'indique-t-on au script appelant ? Je suis sur "sqlite".

                  Dans le même répertoire par défaut de l'utilisateur qui lance le programme (et non le répertoire dans lequel est le script). Sinon, c'est le nom d'un fichier qu'on passe de façon absolue ou relative.

                  Si vous ne maîtrisez pas les bases, vous n'allez pas pouvoir penser correctement comment réaliser votre application et faire de mauvais choix. Et il est difficile d'écrire en quelques lignes ce que les tutos racontent sur des chapitres entiers (et vous ouvrent à d'autres options).

                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 août 2021 à 22:13:20

                    MPS, comment faites-vous pour citer un paragraphe de mes propos ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 août 2021 à 1:53:57

                      chrisblues59 a écrit:

                      MPS, comment faites-vous pour citer un paragraphe de mes propos ?


                      Dans la zone de message, à gauche tu as le pseudo et son illustration, puis un lien de date du message, et à droite (caché), tu as : citer ou signaler.

                      Il faut être en mode paysage sur smartphone ou sur une tablette ou sur un ordinateur.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        6 août 2021 à 9:27:43

                        chrisblues59 a écrit:

                        MPS, comment faites-vous pour citer un paragraphe de mes propos ?


                        C'est une des fonctionnalités basique d'un forum de discussion... alors on cherche un peu pour voir ce qui pourrait y ressembler et on teste.

                        Pour revenir à la discussion de départ, si vous ne savez pas comment sont organisés les fichiers d'un disque dur, ou les conventions concernant répertoire par défaut d'un programme, ... vous n'avez pas de "modèle/représentation mentale" pour réfléchir à comment réaliser avec ce que vous voulez programmer.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 août 2021 à 10:58:28

                          CristianoRolando

                          J'ai déjà testé le bouton "Citer" en haut à droite du post : je connais ce procédé. Mais il "cite" le post entier !

                          Ce que je souhaite savoir, c'est "citer une partie du post", et non l'ensemble.

                          MPS,

                          J'ai déjà cherché, par exemple, je sélectionne la phrase que je souhaite citer, mais j'ai beau "citer" ensuite, cela reprend l'ensemble du post.

                          Si je fais un copié-collé, il n'y a pas la petite barre à gauche. Ne vous inquiétez pas, je finirai par trouver, mais je suis surpris de votre réponse, vous vous montrez habituellement disponible et d'une aide que j'apprécie beaucoup.

                          Quant à la base de données, je la laisse finalement dans le même répertoire que le script appelant. Mais je crois savoir comment indiquer le chemin s'il me prend l'envie de la mettre dans un autre dossier.

                          Exemple : 

                          # Établissement de la connexion - Création du cur :
                          fichierDonnees = "D:/SQLite/Notes.db"
                          connex = sqlite3.connect(fichierDonnees)
                          cur = connex.cursor()

                          Merci à tous.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 août 2021 à 11:43:39

                            chrisblues59 a écrit:

                            Si je fais un copié-collé, il n'y a pas la petite barre à gauche. Ne vous inquiétez pas, je finirai par trouver, mais je suis surpris de votre réponse, vous vous montrez habituellement disponible et d'une aide que j'apprécie beaucoup.

                            Il est facile d'effacer les lignes qu'on ne veut pas récupérer. Par contre pour faire un déooupage de la réponse en plusieurs petits bouts, je passe par l'éditeur HTML (encore un bouton qu'il faut oser activer pour voir).

                            chrisblues59 a écrit:

                            Quant à la base de données, je la laisse finalement dans le même répertoire que le script appelant. Mais je crois savoir comment indiquer le chemin s'il me prend l'envie de la mettre dans un autre dossier.

                            Tout çà pour çà?

                            Vous auriez pu avoir la curiosité de savoir si on peut récupère le répertoire du script (via __file__) pour construire le nom du fichier de la base de données. Mais concernant la question de départ, avec SQLITE les données ne sont pas "partagées", autant placer la base de données dans un sous répertoire utilisateur.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 août 2021 à 13:42:18

                              Oui, mais "tout ça", moi, je ne sais pas... et "j'aurais pu"... ben, non, "je n'aurais pas pu" avec la meilleure volonté... Je perçois un ton quelque peu condescendant et limite moralisateur...

                              "Tout ça pour ça ? (ne mettez pas d'accent grave sur "ça"...) " : oui, et les réponses que j'ai obtenues grâce au forum  m'ont aidé et beaucoup fait découvrir à travers le projet que je suis en train de mettre en place. Vous, vous en êtes à un niveau auquel je suis loin de parvenir, et je ne prétends pas y arriver un jour, mais il est inutile de chercher à me "titiller", pour ne pas dire plus.

                              Restez sympa et veuillez considérer que je suis en apprentissage "constant" et que je ne peux tout connaître de Python : j'ai la chance de bénéficier du savoir-faire des membres du forum (ce dont je les remercie beaucoup), et de mon côté, je cherche à mon humble niveau.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                6 août 2021 à 15:08:33

                                chrisblues59 a écrit:

                                Restez sympa et veuillez considérer que je suis en apprentissage "constant" et que je ne peux tout connaître de Python : j'ai la chance de bénéficier du savoir-faire des membres du forum (ce dont je les remercie beaucoup), et de mon côté, je cherche à mon humble niveau.


                                Si depuis les premières réponses qu'on vous a donné vous n'avez pas eu le réflexe d'aller ouvrir votre tuto préféré au chapitre qui parle des fichiers, vous allez accumuler un tas de trucs survolés mais pas acquis. A vouloir faire sans, vous allez rapidement vous retrouver face à un mur où vous ne maîtriserez plus rien...

                                A ce moment là, personne ne pourra vous aider car tout reprendre à zéro est fastidieux. Pire vous aurez en plus pris de mauvaises habitudes dont il sera difficile de vous défaire/

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  6 août 2021 à 16:10:31

                                  on sait maintenant qu'on part du sqlite (ça peut aider à guider ensuite)
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Où mettre ma 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