Partage
  • Partager sur Facebook
  • Partager sur Twitter

Choix de tables SQL

    26 avril 2022 à 11:24:05

    oui, 1 GEC = 1 région. et il y en a trois.

    Par ailleurs, maintenant l'étape suivante et la création de la base de données, ou plutôt du modèle physique, via SQL server (dans mon cas).

    C'est exactement ça ? ou faudrait-il vérifier quelque chose avant de passer à cette étape?

    Merci beaucoup

    • Partager sur Facebook
    • Partager sur Twitter
      26 avril 2022 à 12:03:13

      C'est difficile à dire avec certitude, mais avec les éléments vus ensemble et ton dernier MCD posté, je dirais que tout est bon pour passer au MPD (les tables, colonnes, clés, contraintes, etc.).

      -
      Edité par Benzouye 26 avril 2022 à 12:03:27

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        27 avril 2022 à 8:54:24

        okay, 

        J'ai une autre tâche auquelle je dois trouver une solution, je dois automatiser l'insertion des projets, pour être plus précis; il existe deux "types" de projets:

        -quelques uns sont insérés manuellement.

        -D'autres existent déjà sur une autre base de données ou plutôt sur un progiciel.

        Et moi l'interface graphique je dois créer est censée permettre la récupération automatique de ces projets déjà existants dans la BDD avec leurs types.

        As-tu s'il te plaît une piste à me proposer?

        Merci beaucoup

        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2022 à 11:34:46

          BDD_2000 a écrit:

          permettre la récupération automatique de ces projets déjà existants dans la BDD avec leurs types

          En quel langage est codée ton application ? PHP ?

          Où se trouve la BDD existante qui contient les projets à récupérer ? Sur le même serveur ?

          As-tu les identifiants pour te connecter à cette base ?

          Côté programmation cela implique que ton programme ait une connexion distincte pour chaque base (la tienne et l'autre). Que tu récupères dans l'autre base la liste des projets à importer. Dans ton application tu peux imaginer un bouton "Importer un projet" qui ouvre une fenêtre permettant à l'utilisateur de choisir dans la liste des projets issus de l'autre base le projet à importer.

          Dans tous les cas, il faudra que tu apprivoises la structure de données existante pour concevoir un "mapping" te permettant de récupérer les données de la base existante et de les insérer dans la nouvelle base.

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            27 avril 2022 à 12:05:07

            Je ne peux pas répondre à toutes tes questions maintenant, mais pour le langage, je compte faire une application WPF avec visual studio à partir d'une BDD SQL server, et le langage serait potentiellement "C#",  mais sincèrement je vais l'apprendre dès le début, donc je ne sais si apprendre "php" est plus facile que "C#" au cas où t'as utilisé les deux! 

            • Partager sur Facebook
            • Partager sur Twitter
              27 avril 2022 à 13:56:38

              C# est très bien, je n'ai pas d'action chez PHP ... Reste sur un seul langage.

              Soit l'application existante propose des services web (type API REST) permettant de faire des requêtes pour obtenir des données, soit il faudra que tu les développes en C#. En tous cas, tu pourras tout à fait faire une connexion sur la base existante et une connexion sur la nouvelle base, et assurer la "traduction" entre les deux.

              -
              Edité par Benzouye 27 avril 2022 à 13:56:51

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                3 mai 2022 à 9:35:52

                okay merci,

                pour la partie de la plannification, est-ce qu'elle est faisable avec ce modèle conecptuel, notamment qu'elle doit couvrir à peu près 3ans et doit se faire par semaine?

                voici un exemple pour mieux comprendre:

                sachant que 1 <=> 40h de travail, c'est-à-dire toute la semaine, et par exemple, 0.2 va illustrer un travail de 40*0.2 = 8h de travail dans la semaine correspondante.

                MErci

                • Partager sur Facebook
                • Partager sur Twitter
                  3 mai 2022 à 13:45:11

                  Vu la présentation ci-dessus, on peut imaginer qu'un même ingénieur peut travailler sur plusieurs projets la même semaine, et qu'il est accepté d'avoir des valeurs supérieur à 1 sur une semaine.

                  Je ne sais pas quelle structure tu as acté pour la relation "participation", mais si ces contraintes sont bien là, alors je te proposerai le modèle suivant :

                  Ainsi, pour obtenir la présentation souhaitée, la requête SQL serait :

                  SELECT
                  	P.id_ingenieur,
                  	I.nom,
                  	I.prenom,
                  	P.annee,
                  	P.semaine,
                  	SUM( P.temps ) AS temps
                  FROM
                  	participation P
                  		INNER JOIN ingenieur I
                  			ON P.id_ingenieur = I.id_ingenieur
                  GROUP BY
                  	P.id_ingenieur,
                  	I.nom,
                  	I.prenom,
                  	P.annee,
                  	P.semaine
                  ORDER BY
                  	P.annee,
                  	P.semaine,
                  	P.id_ingenieur

                  Cela te donnera un tableau droit qu'il faudra croiser à l'affichage pour obtenir le planning sous la forme attendue.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    4 mai 2022 à 9:06:11

                    Donc dans ce cas, je crois qu'il faudrait changer la table "participation" en rajouant les colonnes que tu viens d'ajouter!
                    sinon merci pour le code, je m'en servirais quand je commencerai le modèle physique
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 mai 2022 à 15:00:46

                      Oui, côté MCD, "participation" devient une entité, et n'est plus une relation...

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                        5 mai 2022 à 10:23:49

                        Benzouye a écrit:

                        est-ce que tu peux m'envoyer stp le code sur Mocodo de cette partie, vu que quand j'essais de la faire sur l'autre MCD ça donne n'importe quoi...

                        MErci bien



                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mai 2022 à 19:01:20

                          typeingenieur: id_typeingenieur, libelle
                          type_ingenieur, 0N typeingenieur, 11 ingenieur
                          ingenieur: id_ingenieur, nom
                          regroupe, 0N discipline, 11 ingenieur
                          discipline: id_discipline, libelle
                          
                          :
                          lieu_ingenieur, 11 ingenieur, 0N region
                          participe, 0N ingenieur, 11 participation
                          :
                          
                          region: id_region, libelle
                          :
                          participation: id_participation, annee, semaine, temps
                          est, 0N role, 11 participation
                          role: id_role, libelle
                          
                          :
                          lieu_projet, 0N region, 11 projet
                          concerne, 0N projet, 11 participation
                          :
                          :
                          
                          typeprojet: id_typeprojet, libelle
                          type_projet, 0N typeprojet, 11 projet
                          projet: id_projet, nom
                          :

                          Mais je te conseille d'utiliser Looping MCD, ce sera plus facile de faire évoluer le modèle ...

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

                            Benzouye a écrit:

                            Dans tous les cas, il faudra que tu apprivoises la structure de données existante pour concevoir un "mapping" te permettant de récupérer les données de la base existante et de les insérer dans la nouvelle base.


                            Est-ce que tu peux détailler stp davantage cette partie? est-ce qu'il y aura un changement au niveau du modèle conceptuel ou physique ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 mai 2022 à 10:48:17

                              Le principe c'est de bien connaître la base de données source pour savoir où trouver les données souhaitées et décider où les mettre dans ton modèle à toi...

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                10 mai 2022 à 8:41:49

                                ok merci,

                                J'ai oublié une table importante, qui s'appelle "M*H CTR", en effet:

                                c'est l'abréviation de manhour counting time et j'ai oublie c'est quoi le R, ça permet en fait de donner une approximation du temps necessaire pour l'execution d'un projet, à partie d'une BDD eCTR des temps d'execution des anciens projets, donc:

                                Pour chaque "projet" on a une "M*H CTR" et une "M*H CTR" peut correspondre à plusieurs projets.

                                Comment pourrais-je inserer ça sur ton code MOCODO stp? (pr Looping, t'as oublié, on m'a pas accepté de le telecharger, donc je fais avec MOCODO)

                                Merci beaucoup

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  10 mai 2022 à 9:14:40

                                  Si le MHCTR est une simple valeur (numérique ?) alors un nouvel attribut dans l'entité projet suffit ...

                                  Si le MHCTR est un "objet" décrit par plusieurs valeurs, alors il faut créer une nouvelle entité avec une relation 1,n vers l'entité projet.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                    10 mai 2022 à 14:34:30

                                    c'est fait, merci,

                                    sinon est-ce que cette formulation est bonne pour les regles de gestion de ces deux relations:

                                    R008 : une participation concerne un projet, et plusieurs projets sont concernés par une participation

                                    R009 : un ingenieur participe (ou intervient ) à plusieurs participations et une participation est concernée par un ingénieur.

                                    même si j'ai des doutes sur R009, vu que pour une participation il peut y avoir plusieurs ingénieurs!

                                    et j'ai une autre quetsion STP, comment peut-on lire les différentes relations en détails?

                                    par exemple :

                                    Un ingénieur a un et un seul type d'ingénieurs, et un type d'ingénieurs concerne 0 ou plusieurs ingénieurs, c'est comme ça qu'il faut dire? si c'est okay, faudrait-il pas mettre 1 au lieu de 0 vu qu'un type d'ingénieurs ait forcément un ingénieur, non?

                                    et là:

                                    pourquoi pas lier "role" à "ingénieur"  eu lieu de "participation" ? sinon cette relation traduit-elle quelle regle de gestion?

                                    -
                                    Edité par BDD_2000 10 mai 2022 à 15:15:15

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      10 mai 2022 à 16:19:31

                                      BDD_2000 a écrit:

                                      R008 : une participation concerne un projet, et plusieurs projets sont concernés par une participation

                                      C'est faux et contradictoire : le début de la phrase dit le contraire de la fin ... Je dirais plutôt "Une participation est liée à un seul projet, et un projet peut être lié à plusieurs participation" ce qui donne des cardinalités (1,1 --- 0,n), le zéro étant permis par le "peut être".

                                      BDD_2000 a écrit:

                                      R009 : un ingenieur participe (ou intervient ) à plusieurs participations et une participation est concernée par un ingénieur

                                      Là c'est correct, même si je reprendrai ainsi : "Une participation est liée à un seul ingénieur, et un ingénieur peut être lié à plusieurs participations", encore des cardinalités ( 1,1 --- 0,n ).

                                      BDD_2000 a écrit:

                                      Un ingénieur a un et un seul type d'ingénieurs, et un type d'ingénieurs concerne 0 ou plusieurs ingénieurs

                                      Oui, c'est correct, même si je reprendrai ainsi : "Un ingénieur est lié à un seul type, et un type peut être lié à plusieurs ingénieurs", encore des cardinalités ( 1,1 --- 0,n )".

                                      Je pense que tu as compris le principe avec ces trois exemples ?

                                      BDD_2000 a écrit:

                                      faudrait-il pas mettre 1 au lieu de 0 vu qu'un type d'ingénieurs ait forcément un ingénieur, non?

                                      En pratique il existera forcément un type créé qui n'est pas encore lié à un ingénieur ...

                                      Je généraliserai même en disant que la cardinalité 1,n est irréalisable en pratique, car il faudrait une création simultanée des deux côté de la relation ... ce qui est physiquement impossible.

                                      Dans cet exemple, il faut absolument créer un type avant de pouvoir y affecter son premier ingénieur ... Entre le moment ou le type est créé et celui où un ingénieur lui est rattaché, la cardinalité sera 0 ...

                                      BDD_2000 a écrit:

                                      pourquoi pas lier "role" à "ingénieur"  eu lieu de "participation" ? sinon cette relation traduit-elle quelle regle de gestion?

                                      Là c'est un choix personnel ... pour dire qu'un ingénieur peut assurer plusieurs rôles sur le même projet, à des étapes ou des temps différents ... Tu peux tout à fait revoir ce point comme bon te semble en fonction de 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
                                        11 mai 2022 à 8:56:36

                                        Merci  beaucoup, je crois j'ai compris le principe, pourtant je pense que je n'ai pas bien saisi l'interpretation de la table "participation"

                                         Benzouye a écrit:BDD_2000 a écrit:

                                        R008 : une participation concerne un projet, et plusieurs projets sont concernés par une participation

                                        C'est faux et contradictoire : le début de la phrase dit le contraire de la fin ... Je dirais plutôt "Une participation est liée à un seul projet, et un projet peut être lié à plusieurs participation" ce qui donne des cardinalités (1,1 --- 0,n), le zéro étant permis par le "peut être".

                                        En effet, dans ce screen qui représente juste une partie 'd'une participation" pour un seul projet, ici en fait on a pour un seul projet 6 participations par 6 ingénieurs,

                                         Donc je ne comprends pas surtout la partie " Une participation est liée à un seul projet ".

                                        Il en est de même pour "Une participation est liée à un seul ingénieur ", peux-tu éclaircir ce point stp ?

                                        Merci

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          11 mai 2022 à 9:30:48

                                          Une participation représente une case de ton tableau, et une seule. Chaque case est liée à un seul projet et à un seul ingénieur.

                                          Si la copie d'écran ci-dessus représente le planning d'un seul projet, avec 4 semaines de temps en colonne, et 6 ingénieurs en ligne, il y aura donc 7 enregistrements dans la table participation (les 7 case avec un nombre), toutes pointant sur le même projet, et 3 pointant sur un ingénieur (ligne 1) et 4 sur un autre ingénieur (ligne 6).

                                          id_participationid_projetid_ingenieuranneesemainetemps
                                          1 1 1 2022 1 1.0
                                          2 1 1 2022 2 0.5
                                          3 1 1 2022 3 0.5
                                          4 1 6 2022 1 1.0
                                          5 1 6 2022 2 0.3
                                          6 1 6 2022 3 0.3
                                          7 1 6 2022 4 0.3

                                          C'est plus clair ?

                                          -
                                          Edité par Benzouye 11 mai 2022 à 9:38:29

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                            13 mai 2022 à 9:12:59

                                            oui, merci beaucoup! 

                                            Je viens d'avoir les identifiants de SQL server pour faire le modèle physique, est-ce que tu peux me donner stp un coup de fil pour savoir par quoi il faut commencer? 

                                            Par exemple, par quelles tables commencer? quels types de requêtes envisager au début? quand traiter les vues?....

                                            C'est mon premier projet avec SQL, so...

                                            -
                                            Edité par BDD_2000 13 mai 2022 à 9:14:25

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              13 mai 2022 à 13:38:10

                                              Je ne connais pas SQL Server (en tout cas pas assez pour t'aider).

                                              Sur MoCoDo, une fois que tu es sûr de ton modèle, tu peux demander une sortie SQL.

                                              Attention SQL Server n'est pas dans la liste donc il faudra adapter le SQL.

                                              Tu peux ensuite importer ce SQL dans ta base de données. Tu peux commencer par remplir les tables de nomenclatures : région, type ingénieur, type projet, rôle et discipline. Tu peux également alimenter la table ingénieur.

                                              Une fois cela fait, tu peux travailler à ton application, dans le langage de ton choix, en créant l'API de communication avec la base de données : fonction CRUD pour chaque table, puis en créant les écrans CRUD sur les tables de nomenclatures, puis ingénieur, projet et participation.

                                              Enfin mettre en place les écrans de consultation des plannings projet selon la table participation.

                                              PS : L'aide de ton maître de stage ne serait pas négligeable ...

                                              -
                                              Edité par Benzouye 13 mai 2022 à 13:38:56

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                                13 mai 2022 à 14:34:49

                                                okay, merci beaucoup.

                                                Moi je compte faire une application WPF avec C# sur visual studio, mais le problème est que je n'ai jamais appris C# donc ça va prendre beaucoup de temps, tu sais pas si je peux faire une avec python vu que c'est le langage que je connais le mieux mais je ne suis pas sur si c'est fonctionnel pour une application WPF sur visual studio?!

                                                sinon que penses-tu de la technologie Powerapps si tu connais?

                                                -
                                                Edité par BDD_2000 13 mai 2022 à 14:37:55

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  13 mai 2022 à 15:28:32

                                                  Je ne connais ni WPF ni Powerapps.

                                                  Visual Studio c'est juste un EDI, tu peux même coder en Python dans Visual Studio ...

                                                  Créer ce genre d'application en Python c'est tout à fait possible et le connecteur pour SQL Server existe. Après, ne faudrait-il pas que ce soit une application web (accessible par navigateur) ?

                                                  -
                                                  Edité par Benzouye 13 mai 2022 à 15:28:46

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                                    13 mai 2022 à 15:41:14

                                                    je pense qu'une application bureau suffit, non?

                                                    Sinon quelle technologie crois-tu "meilleure" et adéquate dans mon cas si j'opte pour une application web?   surtout que je n'ai jamais fait une... et en terme de langage je connais python et java, même si ça fait longtemps que je les ai utilisés.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      13 mai 2022 à 15:54:03

                                                      Chaque solution a ses avantages et inconvénients.

                                                      Côté desktop app tu vas avoir à installer et maintenir les versions sur chaque poste utilisateur ... Par contre tu pourras avoir assez facilement un mode "hors connexion".

                                                      Côté web app tu n'as que le serveur à installer et maintenir, par contre tu seras fortement lié à la connexion Internet.

                                                      Si tes utilisateurs sont nombreux, dispersés et mobiles, la web app est peut-être plus pertinente.

                                                      Si tes utilisateurs sont peu nombreux, concentrés et sédentaires, alors la desktop app est peut-être plus pertinente.

                                                      Python comme Java permettent de développer des web app, il faudra quand même apprendre à maîtriser HTML et CSS pour l'affichage, voire JavaScript pour dynamiser un peu les choses et notamment le planning (DataGrid).

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                                        16 mai 2022 à 15:11:48

                                                        Ok merci,

                                                        Sinon est-ce que, dans ce MCD, on peut définir une date de début et de fin pour le projet? ou bien y'aura-t-il besoin d'ajouter deux colonnes "date debut" et "date fin" ?

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 mai 2022 à 15:42:40

                                                          Il faut forcément rajouter des attributs à l'entité projet ... qui serait date de début et date de fin prévisionnelles ... et je mettrai aussi date de début et date de fin réelle.

                                                          Je rajouterai aussi un attribut "Terminé" (de type booléen) dans la table projet pour déterminer si un projet et terminé ou non.

                                                          • 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 2022 à 8:45:48

                                                            okay, bien vu.

                                                            et est-ce que ça permet de faire travailler plusieurs régions sur le même projet ? ( je pense c'est rassuré par le 0,N entre région projet mais je veux bien m'assurer stp )

                                                            MErci beaucoup

                                                            -
                                                            Edité par BDD_2000 17 mai 2022 à 8:56:13

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              17 mai 2022 à 9:09:49

                                                              BDD_2000 a écrit:

                                                              et est-ce que ça permet de faire travailler plusieurs régions sur le même projet ?

                                                              Dans le modèle actuel un projet est lié à une seule région par la relation 1,n lieu_projet. Par contre, par l'entité participation, plusieurs ingénieurs de régions différentes peuvent travailler sur un même projet. Cela permet de donner une région "responsable" du projet, mais d'avoir plusieurs régions qui y participent. Je ne sais pas si cela est suffisant ...

                                                              • 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 tables SQL

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              • Editeur
                                                              • Markdown