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

Schéma Discussion :

Gestion des ordres de missions


Sujet :

Schéma

  1. #101
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 251
    Points : 39 364
    Points
    39 364
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Quelques remarques

    Citation Envoyé par fsmrel Voir le message
    Pour faciliter la mise en oeuvre des contraintes des chauffeurs et des voitures, la vue suivante du MCD convient mieux : les missions sont soit avec des chauffeurs occasionnels (entité-type MissionAchauffeurSte), soit avec des chauffeurs de société (entité-type MissionAchaufeurOccas).
    Il y a visiblement inversion des noms, l'heure très tardive y est sans doute pour quelque chose



    À propos de ceci :
    Citation Envoyé par fsmrel Voir le message
    Matricule VARCHAR(8) NOT NULL,
    L'encombrement du varchar est augmenté d'un à trois octets selon le SGBD et la longueur maximale de la valeur, pour stocker la longueur effective de celle-ci.
    Ce faisant, du varchar(8) aura un encombrement réel de 9 ou 10 octets selon le SGBD.
    Par ailleurs, le varchar provoque la désorganisation des pages data et index quand une mise à jour modifie la longueur du contenu.
    Enfin, le varchar nécessite le réalignement sur une longueur fixe pour les opération de tri et regroupement (ORDER BY, DISTINCT, GROUP BY, PARTITION BY), ce qui évidemment présente un coût CPU.
    C'est pourquoi du varchar court, comme varchar(8) est plus un inconvénient qu'un avantage, comparativement à du char fixe CHAR(8). Pour ma part, en deçà d'une vingtaine de caractères, je n'utilise que du fixe.



    Citation Envoyé par fsmrel Voir le message
    Citation Envoyé par dalinbm Voir le message
    je veux attribuer des id commence par un entier spécifique (exemple pour IdTypeMission je veux que le premier type prend 10 et le deuxième prend 20)

    Avec SQL Server, utiliser l’instruction CREATE SEQUENCE.
    Avec MySQL, peut-être avec la fonction LAST_INSERT_ID()? Voyez par exemple :
    https://www.mysqltutorial.net/mysql-sequence/
    Réserver des plages d'identifiants en fonction de critères fonctionnels, c'est mettre en péril la stabilité des identifiants. Je n'y suis pas du tout partisan. D'autant moins que c'est une redondance avec le type.
    Si l'on s'affranchit de cette spécification, alors on utilisera avec SQL server la propriété IDENTITY associée à une colonne de type integer (small/int/big)
    Avec MYSQL, l'objet de type SEQUENCE n'existe pas. LAST_INSERT_ID() est une fonction qui permet de retrouver la dernière valeur attribuée à une colonne ayant une propriété AUTO_INCREMENT.
    Quant à la propriété AUTO_INCREMENT, elle permet (comme son équivalent IDENTITY de SQL server) de paramétrer la valeur initiale et le pas, mais pas en fonction d'un critère métier ou autre.
    Ça ne correspond donc pas non plus au besoin.

    @dalinbm : pour quelle raison voulez vous des plages d'identifiants distinctes selon la typologie ?

  2. #102
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    Bonjour,
     
    Citation Envoyé par escartefigue Voir le message
    L'encombrement du varchar est augmenté d'un à trois octets selon le SGBD et la longueur maximale de la valeur, pour stocker la longueur effective de celle-ci.
    Ce faisant, du varchar(8) aura un encombrement réel de 9 ou 10 octets selon le SGBD.
    Certes, et tout DBA en est conscient, mais dans le contexte c’est histoire de mettre quelque chose, et c’est un épiphénomène. Le moment venu, à charge de dalinbm d’utiliser le type correspondant au vrai matricule.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #103
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 251
    Points : 39 364
    Points
    39 364
    Billets dans le blog
    9
    Par défaut
    Je suis bien d'accord : je profitais surtout de la 3e remarque pour aborder d'autres points de peur de les oublier, mais c'est bien cette dernière observation qui m'inquiète : valoriser différemment un identifiant en fonction d'une typologie est inquiétant, j'attends la réponse de dalinbm pour comprendre le besoin.

  4. #104
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2015
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    bonjour,

    Citation Envoyé par fsmrel Voir le message
    Bonsoir,

    Votre post #20 :
     

     

    Je croyais que vous utilisiez SQL Server. Si je comprends bien, vous basculez vers MySQL.
    effectivement mon bon Monsieur,j'ai migrer vers mysql suite a une exigence de programmation ,j'utilise eclipse java et la communication entre mysql et ce dernier est plus facile .

  5. #105
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2015
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    bonsoir ,
    Citation Envoyé par escartefigue Voir le message
    Bonjour,
    @dalinbm : pour quelle raison voulez vous des plages d'identifiants distinctes selon la typologie ?
    je veux mettre en évidence chaque id de chaque table à part (exemple : MissionId :100 ;TypeMission : 200; EmployeId :10 ... et l'incrémentation automatique sera avec une pas de 10 ou de 1)

  6. #106
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2015
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Suite,

    Pour faciliter la mise en oeuvre des contraintes des chauffeurs et des voitures, la vue suivante du MCD convient mieux : les missions sont soit avec des chauffeurs occasionnels (entité-type MissionAchauffeurSte), soit avec des chauffeurs de société (entité-type MissionAchaufeurOccas).
     
    vous avez oblier quelque entité dans votre diagramme,voici mon modele E/A:
    Nom : MLDMIssionCNSS.jpg
Affichages : 68
Taille : 212,9 Ko
    de meme vous avez ajouter une nouvelle entité_type :fonction
    Nom : ENTITE ASSOCIATION FORUM.PNG
Affichages : 68
Taille : 119,7 Ko

  7. #107
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par dalinbm Voir le message
    j'ai migrer vers mysql suite a une exigence de programmation.
    D’accord, mais comme ça fait des lustres que je n’ai pas utilisé MySQL, avec une version désormais obsolète, je continuerai à proposer une base de données SQL Server, vous n’aurez plus qu’à transposer.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  8. #108
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par dalinbm Voir le message
    vous avez oublier quelque entité dans votre diagramme
     
    Dans mon message (post #100), j’ai précisé qu’il s’agissait d’une vue du MCD, c’est-à-dire d’un sous-modèle traitant spécifiquement de la cohérence des déplacements (chauffeurs, voitures). Je n’ai pas besoin de faire figurer les entités-types non impliquées dan cette affaire (frais, demandes de réservation, site, etc.).
     
     
    Citation Envoyé par dalinbm Voir le message
    vous avez ajouter une nouvelle entité_type :fonction
    Exact. Je suis parti du principe qu’un employé peut exercer plus d’une fonction (ce qui fut mon cas dans mon entreprise, où j’avais plusieurs casquettes). Par exemple être chef de projet et conducteur de voiture personnelle (au besoin). En l’occurrence Fonction est synonyme de Rôle.

    Si vous estimez qu’un employé ne peut exercer qu’une seule fonction, j’en tiendrai compte.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  9. #109
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    Voici donc un jeu d’essai.

    En guise de hors-d’œuvre, une fonction dont l’objet est de garantir la cohérence des déplacements avec une voiture de fonction :
     
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    /*-----------------------------------------------------------------
        Une mission avec chauffeur de société doit être cohérente 
        avec le moyen de déplacement et la fonction du chauffeur.
        -------------------------------------------------------------------*/
     
        ALTER TABLE MissionAchauffeurSte
         DROP CONSTRAINT if exists Coherence_Mission_ChauffeurSociete ;
        GO
        DROP FUNCTION IF EXISTS Coherence_Mission_ChauffeurSociete_fonction ;
        go
     
        CREATE FUNCTION Coherence_Mission_ChauffeurSociete_fonction (@MissionId INT)
            RETURNS CHAR(2)
          AS BEGIN
              RETURN CASE WHEN EXISTS
                (SELECT *
                 from MissionAchauffeurSte as a
                   join Mission as b on a.MissionId = b.MissionId 
                   join MoyenDeplacement as c on b.MoyenDeplacementId = c.MoyenDeplacementId
                   join Employe as d on a.EmployeId = d.EmployeId 
                   join EmployeFonction as e on d.EmployeId = e.EmployeId
                   join Fonction as f on e.FonctionId = f.FonctionId
                 WHERE a.MissionId = @MissionId and c.MoyenDeplacementDesignation = 'voiture de la société'
                   AND f.FonctionDesignation = 'chauffeur société'
               ) 
              THEN 'ok'
              ELSE 'ko'
             END ;
        END ;
        GO
        ALTER TABLE MissionAchauffeurSte
          ADD CONSTRAINT Coherence_Mission_ChauffeurSociete
             CHECK (dbo.Coherence_Mission_ChauffeurSociete_fonction(MissionId) = 'ok') ;
        go

    Le jeu d’essai :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    insert into Fonction
    values
       (1, 'informaticien')
     , (2, 'auditeur')
     , (3, 'chauffeur société') 
     , (4, 'chef de service') 
    ;
    insert into Employe
    values 
       (1, 'e1', 'Naudin', 'Fernand') 
     , (2, 'e2', 'Volfoni', 'Raoul')
     , (3, 'e3', 'Volfoni', 'Paul') 
     , (4, 'e4', 'Monpetit', 'Patricia') 
     , (5, 'e5', 'Venanti', 'Pascal') 
     , (6, 'e6', 'Folace', 'Francis') 
     , (7, 'e7', 'Madame', 'Mado')
     , (8, 'e8', 'Mac', 'Sébastien')  
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select '' as Employe, * from Employe order by Matricule ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Employe EmployeId  Matricule  EmployeNom  EmployePrenom
            1          e1         Naudin      Fernand
            2          e2         Volfoni     Raoul
            3          e3         Volfoni     Paul
            4          e4         Monpetit    Patricia
            5          e5         Venanti     Pascal
            6          e6         Folace      Francis
            7          e7         Madame      Mado
            8          e8         Mac         Sébastien
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    insert into EmployeFonction
    values
        (1, 4)
      , (1, 1)
      , (2, 1)
      , (3, 1)
      , (4, 2)
      , (5, 3)
      , (6, 2)
      , (7, 2)
      , (8, 3)
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select '' as EmployeFonction, Matricule, FonctionDesignation as Fonction 
      from Employe as a
        join EmployeFonction as b on a.EmployeId = b.EmployeId
        join Fonction as c on b.FonctionId = c.FonctionId 
    ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    EmployeFonction  Matricule  Fonction
                     e1         informaticien
                     e1         chef de service
                     e2         informaticien
                     e3         informaticien
                     e4         auditeur
                     e5         chauffeur société
                     e6         auditeur
                     e7         auditeur
                     e8         chauffeur société
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    insert into MoyenDeplacement
    values
       (1, 'bus')
     , (2, 'voiture de la société')
     , (3, 'voiture personnelle') 
    ;
    insert into TypeMission
    values 
       (1, 'Assistance informatique'),
       (2, 'Dépannage informatique')
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    insert into Mission (MissionId, MissionCode, MissionDateDebut, MissionDateFin, MissionDesignation, MoyenDeplacementId, TypeMissionId)
    values 
       (1, 'm1', '2023-10-01', '2023-10-05', 'Debugging programme PG09', 1, 2)
     , (2, 'm2', '2023-09-28', '2023-10-03', 'Mise en oeuvre de Looping', 2, 1)
     , (3, 'm3', '2023-10-04', '2023-10-10', 'Installation SQL Server', 3, 1)
     , (4, 'm4', '2023-10-10', '2023-10-15', 'Test perfs SQL Server', 1, 1)
     , (5, 'm5', '2023-10-16', '2023-10-18', 'Test perfs SQL Server', 3, 1)
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select '' as Mission
      , MissionId 
      , MissionCode, MissionDateDebut as Debut, MissionDateFin as Fin, MissionDesignation as Objet 
      , MoyenDeplacementDesignation as MoyenDeplacement, TypeMissionDesignation as TypeMission      
    from Mission as a
      join TypeMission as b on a.TypeMissionId = b.TypeMissionId
      join MoyenDeplacement as c on a.MoyenDeplacementId = c.MoyenDeplacementId   
    order by MissionCode ;



    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    insert into EmployeMission
    values
       ((select MissionId from Mission where MissionCode = 'm2')
        , (select EmployeId from Employe where Matricule = 'e1'))
     , ((select MissionId from Mission where MissionCode = 'm2')
        , (select EmployeId from Employe where Matricule = 'e2'))
     , ((select MissionId from Mission where MissionCode = 'm2')
        , (select EmployeId from Employe where Matricule = 'e3'))
     , ((select MissionId from Mission where MissionCode = 'm2')
        , (select EmployeId from Employe where Matricule = 'e6'))
    ; 
     
    /* pour tester participation employé à deux missions en même temps
    insert into EmployeMission
    values
       ((select MissionId from Mission where MissionCode = 'm1')
        , (select EmployeId from Employe where Matricule = 'e1'))
     , ((select MissionId from Mission where MissionCode = 'm1')
        , (select EmployeId from Employe where Matricule = 'e3'))
    -- , ((select MissionId from Mission where MissionCode = 'm1')
    --    , (select EmployeId from Employe where EmployeMatricule = 'e6'))
    ; 
    */
     
    insert into EmployeMission
    values
       ((select MissionId from Mission where MissionCode = 'm5')
        , (select EmployeId from Employe where Matricule = 'e6'))
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select '' as EmployeMission, a.MissionId, MissionCode, a.EmployeId, Matricule 
      from EmployeMission a 
        join Mission b on a.MissionId = b.MissionId 
        join Employe c on a.EmployeId = c.EmployeId
      order by Matricule, MissionCode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EmployeMission  MissionId  MissionCode  EmployeId  Matricule
                    2          m2           1          e1
                    2          m2           2          e2
                    2          m2           3          e3
                    2          m2           6          e6
                    5          m5           6          e6
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    insert into Chauffeur
    values (1), (2), (5), (8) ;
     
    select '' as Chauffeur, Matricule 
      from Chauffeur as a
        join Employe as b on a.EmployeId = b.EmployeId 
    ;
     
    insert into ChauffeurSociete
    values (5), (8)
    ;
    select '' as ChauffeurSociete, Matricule
      from ChauffeurSociete as a
        join Chauffeur as b on a.EmployeId = b.EmployeId
        join Employe as c on b.EmployeId = c.EmployeId
    ;

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select '' as MissionAchauffeurSte
       , b.MissionDesignation as Mission
       , d.Matricule, d.EmployeNom, f.FonctionDesignation as Fonction
       , a.VoitureId, c.MoyenDeplacementDesignation as MoyenDeplacement 
    from MissionAchauffeurSte as a 
      join Mission as b on a.MissionId = b.MissionId
      join MoyenDeplacement as c on b.MoyenDeplacementId = c.MoyenDeplacementId
      join Employe as d on a.EmployeId = d.EmployeId 
      join EmployeFonction as e on d.EmployeId = e.EmployeId
      join Fonction as f on e.FonctionId = f.FonctionId ;
     

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     insert into ChauffeurOccasionnel
    values (1), (2)
    ;
    select '' as ChauffeurOccasionnel, Matricule
      from ChauffeurOccasionnel as a
        join Chauffeur as b on a.EmployeId = b.EmployeId
        join Employe as c on b.EmployeId = c.EmployeId
    ; 
    insert into Voiture (VoitureId, Immatriculation)
    values 
     (1, 'immat01'), (2, 'immat02'), (3, 'immat03'), (4, 'immat04'), (5, 'immat05')
    ;
    select '' as Voiture, * from Voiture ;
     
    insert into VoitureSociete (VoitureId)
    values (1), (2), (3)
    ;
    select '' as VoitureSociete, * from VoitureSociete ;
     
    insert into VoiturePersonnelle (VoitureId, EmployeId)
    values (4, 1), (5, 2)
    ;
    select '' as VoiturePersonnelle, * from VoiturePersonnelle ;
     
    insert into MissionAchaufeurOccas(MissionId, VoitureId)
    values
    (1, 4)
    ;
    select '' as MissionAchaufeurOccas, * from MissionAchaufeurOccas ;
     
    insert into MissionAchauffeurSte (MissionId, VoitureId, EmployeId)
    values
    (2, 1, 5) -- l'employé 5 est bien chauffeur de société
    --(2, 1, 3) -- l'employé 3 n'est pas chauffeur de société
    ;
    select '' as MissionAchauffeurSte
       , b.MissionDesignation as Mission
       , d.Matricule, d.EmployeNom, f.FonctionDesignation as Fonction
       , a.VoitureId
       , c.MoyenDeplacementDesignation as MoyenDeplacement 
    from MissionAchauffeurSte as a 
      join Mission as b on a.MissionId = b.MissionId
      join MoyenDeplacement as c on b.MoyenDeplacementId = c.MoyenDeplacementId
      join Employe as d on a.EmployeId = d.EmployeId 
      join EmployeFonction as e on d.EmployeId = e.EmployeId
      join Fonction as f on e.FonctionId = f.FonctionId
    ;
     
    /* tentative infraction 
    insert into MissionAchaufeurOccas(MissionId, VoitureId)
    values
    (2, 4)
    ;
    */
    select '' as MissionAchaufeurOccas, * from MissionAchaufeurOccas ;
     
    --/*
    --SELECT a.EmployeId, a.MissionId  --,-- c.MoyenDeplacementDesignation
    SELECT a.EmployeId, a.MissionId , c.MoyenDeplacementDesignation
             From MissionAchauffeurSte as a
               join Mission as b on a.MissionId = b.MissionId
               join MoyenDeplacement as c on b.MoyenDeplacementId = c.MoyenDeplacementId
             WHERE a.MissionId = 1
    --*/
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  10. #110
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    @dalinbm,

    Si vous estimez que vous avez maintenant toutes les billes pour mener à bien votre projet, alors n’oubliez pas de marquer cette discussion comme résolue.

    Que tout se passe bien !
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #111
    Nouveau membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2015
    Messages : 42
    Points : 34
    Points
    34
    Par défaut
    bonsoir,
    hhhhh...merci pour votre message, j'ai fait une mission pendant 10 jours ,c’est pour cela que j'ai pas vous répondez ,mais attend de moi quelques remarques et merci en plus je dois aller en vacance (aïd el Kébir) donc à la prochaine inchallah

  12. #112
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par dalinbm Voir le message
    je dois aller en vacance
    Mais pas avant d'avoir voté pour les réponses utiles !
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  13. #113
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 086
    Points : 31 329
    Points
    31 329
    Billets dans le blog
    16
    Par défaut
    D'accord dalinbm, c'et bon pour les vacances !
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. [WD17] Gestion des ordres mission
    Par PipouZed dans le forum WinDev
    Réponses: 5
    Dernier message: 05/03/2017, 16h01
  2. [MCD] Gestion des parapheurs et des ordres de mission d'un ministère
    Par yacinthos dans le forum Schéma
    Réponses: 5
    Dernier message: 12/11/2014, 13h45
  3. Réponses: 9
    Dernier message: 31/08/2014, 20h02
  4. Réponses: 0
    Dernier message: 14/01/2010, 10h33
  5. Quel SGBD pour la gestion des missions d'une association ?
    Par Bragon12 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 06/05/2008, 14h32

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