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 :

Maintenance de camions


Sujet :

Schéma

  1. #501
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour Ordigil,


    Je vais m'en occuper, mais il faut que je commence par mettre à jour les structures des tables et que je crée un jeu d'essai pour vérifier.
    Patience...
    (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.
      1  0

  2. #502
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Quand je regarde tout ce que vous avez fait, je me dis que vous vous en avez de la patience hahaha


    Citation Envoyé par fsmrel Voir le message
    Bonjour Ordigil,


    Je vais m'en occuper, mais il faut que je commence par mettre à jour les structures des tables et que je crée un jeu d'essai pour vérifier.
    Patience...
      0  0

  3. #503
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    On ne va pas peut-être pas tarder à mettre les mains dans le cambouis...


    En attendant, pour reprendre le MLD du post #490, la structure de la table DIFFERENTIAL (cf. ci-dessous) est de type intemporel : si on modifie le ratio d’un différentiel, le nouveau ratio remplace purement et simplement l’ancien ratio, même chose pour les autres attributs.


    Est-ce ainsi que vous comptez gérer les ratios, ou bien faut-il les historiser ?

    Dans cette table, quels sont les attributs invariants et, outre le ratio, quels sont ceux pouvant être sujets à des modifications dans le temps et, dans ces conditions, que vous souhaitez historiser ?

    A quoi correspond l'attribut Serie (DiffSerie) ?
    (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.
      1  0

  4. #504
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Il n'y a que le ratio qui pourrait changer mais il est plus avantageux de changer le différentiel pour un autre qui a le ratio que l'on désire et si nous changeons le ratio du différentiel, le numéro de série ne voudra plus dire grand chose…..….… À la limite s'il n'est pas lock, on pourrait le rendre lock mais nous ne le ferons pas… Non pas besoin d'historiser les ratios…. Ce n'est pas le ratio du différentiel que nous changerons mais poserons un différentiel avec un ratio différent dans l'essieu…. Series c'est : hmmmmm…. Disons que je suis un manufacturier de différentiel… Je fabrique différentes séries, genre : SDFR123, RTU789 et BGY777 ce ne sont pas des numéros de séries. Disons SDFR123 pour camion forestiers, RTU789 avec planétaire et BGY777 pour camion highway…


    Citation Envoyé par fsmrel Voir le message
    On ne va pas peut-être pas tarder à mettre les mains dans le cambouis...


    En attendant, pour reprendre le MLD du post #490, la structure de la table DIFFERENTIAL (cf. ci-dessous) est de type intemporel : si on modifie le ratio d’un différentiel, le nouveau ratio remplace purement et simplement l’ancien ratio, même chose pour les autres attributs.


    Est-ce ainsi que vous comptez gérer les ratios, ou bien faut-il les historiser ?

    Dans cette table, quels sont les attributs invariants et, outre le ratio, quels sont ceux pouvant être sujets à des modifications dans le temps et, dans ces conditions, que vous souhaitez historiser ?

    A quoi correspond l'attribut Serie (DiffSerie) ?
      1  0

  5. #505
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil Voir le message
    Il n'y a que le ratio qui pourrait changer mais il est plus avantageux de changer le différentiel pour un autre qui a le ratio que l'on désire.
    D’accord, quel que soit l’attribut de la table DIFFERENTIAL, d’un point de vue fonctionnel, il n’y a aucune historisation : les modifications ne pourront donc correspondre qu’à la correction d’erreurs de saisie et autres besoins de ce genre.


    En ce qui concerne la table AXLE ci-dessous, la liste des attributs est-elle complète ? D’un point de vue fonctionnel, y a-t-il des attributs sujets à historisation ?

    (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.
      1  0

  6. #506
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    On pourrait ajouter 'AxleTorque'

    Citation Envoyé par fsmrel Voir le message
    D’accord, quel que soit l’attribut de la table DIFFERENTIAL, d’un point de vue fonctionnel, il n’y a aucune historisation : les modifications ne pourront donc correspondre qu’à la correction d’erreurs de saisie et autres besoins de ce genre.


    En ce qui concerne la table AXLE ci-dessous, la liste des attributs est-elle complète ? D’un point de vue fonctionnel, y a-t-il des attributs sujets à historisation ?

      0  0

  7. #507
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil Voir le message
    On pourrait ajouter 'AxleTorque'
    Soit ! Le tableau du post #470 est donc à mettre à jour.
    Cet ajout rend-il caduque l’attribut DiffTorque de la table DIFFERENTIAL ?

    Par ailleurs, je répète, d’un point de vue fonctionnel, y a-t-il des attributs de la table AXLE sujets à historisation ? Ou bien les considère-t-on tous comme invariants ?
    (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.
      1  0

  8. #508
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Axle et Differential ont chacun leur Torque, en principe ça devrait être le même Torque pour les deux….
    Je ne vois pas quel attributs nous pourrions historiser sauf, leur maintenances, leur réparations et les changements d'huile dans les Axle….


    Citation Envoyé par fsmrel Voir le message
    Soit ! Le tableau du post #470 est donc à mettre à jour.
    Cet ajout rend-il caduque l’attribut DiffTorque de la table DIFFERENTIAL ?

    Par ailleurs, je répète, d’un point de vue fonctionnel, y a-t-il des attributs de la table AXLE sujets à historisation ? Ou bien les considère-t-on tous comme invariants ?
      1  0

  9. #509
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil Voir le message
    Comment je peux faire une vue qui affichera ceci ?

    CamionVIN    CamionNumber    MoteurNumeroSerie    TransmissionNumeroSerie    DifferentielNumeroSerie_F    DifferentielNumeroSerie_R
    ___________________________________________________________________________________________________________________________________
    BLABLA       2536            BLEBLEBLE            BLIBLIBLI                  BLOBLOBLO                    BLUBLUBLU
    HAHAHA       25789           HEHEHE               HIHIHI                     HOHOHO                       HUHUHU
    COINCOIN     25162           COUAKCOUAK           CLIKCLIK                   CLOCKCLOCK                   CLANCLAN

    C'est à dire, ce qui est installé présentement sur chaque camion

    Je suppose que pour les différentiels il s’agit du forward et du rear.

    On peut commencer par créer des vues pour chaque type de composant. Dans ces vues, on ne s’intéresse qu’aux composants les plus récents, d’où un GROUP BY LocalisationId et la fonction MAX associée : MAX(ComposantInstallationDate).

    Pour les moteurs :

    ---------------------------------------------------------------
    -- Les moteurs par camion
    ---------------------------------------------------------------
    go
    CREATE VIEW CAMION_MOTEUR_V (CamionVIN, CamionNumber, MoteurNumeroSerie, MoteurInstallationDate) 
    AS
    SELECT CamionVIN, CamionNumber, MoteurNumeroSerie, MoteurInstallationDate
    FROM   (SELECT LocalisationId, MAX(ComposantInstallationDate) AS MoteurInstallationDate
            FROM   CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId
                               JOIN MOTEUR AS z ON y.ComposantId = z.ComposantId    -- pour ne considérer que les moteurs 
            GROUP BY LocalisationId
           ) AS x
           JOIN CAMION AS y ON x.LocalisationId = y.CamionId 
           JOIN COMPOSANT_AFFECTATION AS z ON x.LocalisationId = z.LocalisationId AND MoteurInstallationDate = ComposantInstallationDate
           JOIN MOTEUR AS t ON z.ComposantId = t.ComposantId
    go
    
    SELECT '' AS CamionMoteur, * FROM CAMION_MOTEUR_V ;
    

    Pour les transmissions :

    
    ---------------------------------------------------------------
    -- Les transmissions par camion
    ---------------------------------------------------------------
    go
    CREATE VIEW CAMION_TRANSMISSION_V (CamionVIN, CamionNumber, TransmissionNumeroSerie, TransmissionInstallationDate) 
    AS
    SELECT CamionVIN, CamionNumber, TransmissionNumeroSerie, TransmissionInstallationDate
    FROM   (SELECT LocalisationId, MAX(ComposantInstallationDate) AS TransmissionInstallationDate
            FROM   CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId
                               JOIN TRANSMISSION AS z ON y.ComposantId = z.ComposantId    -- pour ne considérer que les transmissions 
            GROUP BY LocalisationId
           ) AS x
           JOIN CAMION AS y ON x.LocalisationId = y.CamionId 
           JOIN COMPOSANT_AFFECTATION AS z ON x.LocalisationId = z.LocalisationId AND TransmissionInstallationDate = ComposantInstallationDate
           JOIN TRANSMISSION AS t ON z.ComposantId = t.ComposantId
    go
    
     SELECT '' AS CamionTransmission, * FROM CAMION_TRANSMISSION_V ;
    

    Pour les différentiels (type forward) :

    ----------------------------------------------------------------
    -- Les différentiels forward par camion
    ----------------------------------------------------------------   
    go
    CREATE VIEW CAMION_FORWARD_V (CamionVIN, CamionNumber, ForwardNumeroSerie, ForwardInstallationDate) 
    AS
    SELECT CamionVIN, CamionNumber, DiffSerialNumber AS ForwardNumeroSerie, DiffInstalDate AS ForwardInstallationDate
    FROM   (SELECT LocalisationId, MAX(ComposantInstallationDate) AS AxleInstallationDate
            FROM   CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId
                               JOIN AXLE AS z ON y.ComposantId = z.ComposantId    -- pour ne considérer que les essieux 
            GROUP BY LocalisationId
           ) AS x
           JOIN CAMION AS y ON x.LocalisationId = y.CamionId 
           JOIN COMPOSANT_AFFECTATION AS z ON x.LocalisationId = z.LocalisationId AND AxleInstallationDate = ComposantInstallationDate
           JOIN AXLE AS t ON z.ComposantId = t.ComposantId
           JOIN DIFF_AXLE AS u ON t.ComposantId = u.AxleId
           JOIN DIFFERENTIAL AS v ON u.DiffId = v.DiffId
    WHERE  DiffType = 'w'
    ;
    go
    
     SELECT '' AS CamionForward, * FROM CAMION_FORWARD_V ;
    

    Pour les différentiels (type rear) :

    ----------------------------------------------------------------
    -- Les différentiels rear par camion
    ----------------------------------------------------------------   
    go
    CREATE VIEW CAMION_REAR_V (CamionVIN, CamionNumber, RearNumeroSerie, RearInstallationDate) 
    AS
    SELECT CamionVIN, CamionNumber, DiffSerialNumber AS ReardNumeroSerie, DiffInstalDate AS RearInstallationDate
    FROM   (SELECT LocalisationId, MAX(ComposantInstallationDate) AS AxleInstallationDate
            FROM   CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId
                               JOIN AXLE AS z ON y.ComposantId = z.ComposantId    -- pour ne considérer que les essieux 
            GROUP BY LocalisationId
           ) AS x
           JOIN CAMION AS y ON x.LocalisationId = y.CamionId 
           JOIN COMPOSANT_AFFECTATION AS z ON x.LocalisationId = z.LocalisationId AND AxleInstallationDate = ComposantInstallationDate
           JOIN AXLE AS t ON z.ComposantId = t.ComposantId
           JOIN DIFF_AXLE AS u ON t.ComposantId = u.AxleId
           JOIN DIFFERENTIAL AS v ON u.DiffId = v.DiffId
    WHERE  DiffType = 'r'
    ;
    go
    
     SELECT '' AS CamionRear, * FROM CAMION_REAR_V ;
    

    Pour ce que vous recherchez, on crée la vue suivante, jointure des vues précédentes :

    ------------------------------------------------------------------------
    -- Vue générale
    ------------------------------------------------------------------------
    GO
    CREATE VIEW CAMION_COMPOSITION_V (CamionVIN, CamionNumber, MoteurNumeroSerie, TransmissionNumeroSerie
                                    , DifferentielNumeroSerie_F, DifferentielNumeroSerie_R)
    AS
    SELECT x.CamionVIN, x.CamionNumber
         , COALESCE(MoteurNumeroSerie, '??') AS MoteurNumeroSerie
         , COALESCE(TransmissionNumeroSerie, '??') AS TransmissionNumeroSerie  
         , COALESCE(ForwardNumeroSerie, '??') AS ForwardNumeroSerie
         , COALESCE(RearNumeroSerie, '??') AS RearNumeroSerie
    FROM   CAMION AS x FULL JOIN CAMION_MOTEUR_V AS y ON x.CamionVIN = y.CamionVIN
                       FULL JOIN CAMION_TRANSMISSION_V AS z ON x.CamionVIN = z.CamionVIN  
                       FULL JOIN CAMION_FORWARD_V AS t ON x.CamionVIN = t.CamionVIN  
                       FULL JOIN CAMION_REAR_V AS u ON x.CamionVIN = u.CamionVIN      
    ;
    GO
    
    SELECT '' AS CamionComposition, * FROM CAMION_COMPOSITION_V ;
    

    Je compléterai les vues CAMION_FORWARD_V et CAMION_REAR_V, car si j’ai traité du moteur le plus récent pour chaque camion, ainsi que de la transmission et des essieux les plus récents, je ne l’ai pas encore fait pur les différentiels. Mais vous pouvez commencer à voir ce que cela donne de votre côté.

    J'ai remis à plat les bases de données temp et DZINDZIO_TRUCKS_MANAGEMENT_TEMP.
    (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.
      1  0

  10. #510
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Wowwww merci fsmrel….. Cette vue sera très appréciée par l'utilisateur.

    Citation Envoyé par fsmrel
    Je suppose que pour les différentiels il s’agit du forward et du rear.

    On peut commencer par créer des vues pour chaque type de composant. Dans ces vues, on ne s’intéresse qu’aux composants les plus récents, d’où un GROUP BY LocalisationId et la fonction MAX associée : MAX(ComposantInstallationDate).
      0  0

  11. #511
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut Bonjour fsmrel :-)
    Dans la table 'DIFFERENTIAL' à quoi associez-vous la colonne 'DiffType' avec les lettres a, w, r ?????
      0  0

  12. #512
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Dans la table DIFFERENTIAL, l’attribut DiffType a la valeur 'a' quand le différentiel est un front, 'w' quand c’est un forward et 'r' quand c’est un rear. On peut changer ça, bien qu’on affichera en clair pour l’utilisateur (grâce à un CASE).

    Les vues son en cours de révision...
    (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.
      1  0

  13. #513
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    J'avais Front, Forward et Rear pour le site web…
    Vous voulez une lettre unique ???? Si vous voulez vraiment des lettres unique : S pour Steering, F pour Forward, R pour Rear….. Peut-on utiliser les mêmes lettres pour les 'Axles' ????

    Citation Envoyé par fsmrel Voir le message
    Dans la table DIFFERENTIAL, l’attribut DiffType a la valeur 'a' quand le différentiel est un front, 'w' quand c’est un forward et 'r' quand c’est un rear. On peut changer ça, bien qu’on affichera en clair pour l’utilisateur (grâce à un CASE).

    Les vues son en cours de révision...
      0  0

  14. #514
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bon, je remplacerai les lettres uniques par ce que vous avez sur le web (rappelez-le moi…)

    Je suis en train d'essayer de compléter les vues pour les différentiels, mais j'ai une erreur avec les rears et j'ai du mal à voir pourquoi...
    (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.
      1  0

  15. #515
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Vous imaginez ce que j'aurais fait seul ? hahaha


    Citation Envoyé par fsmrel Voir le message
    Bon, je remplacerai les lettres uniques par ce que vous avez sur le web (rappelez-le moi…)

    Je suis en train d'essayer de compléter les vues pour les différentiels, mais j'ai une erreur avec les rears et j'ai du mal à voir pourquoi...
      0  0

  16. #516
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bon, j'ai trouvé ce qui n'allait pas. Pour que vous puissiez monter ce genre de requêtes, je désosserai et vous expliquerai...
    (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.
      1  0

  17. #517
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Merci d'être encore là après plus de 500 messages

    Citation Envoyé par fsmrel Voir le message
    Bon, j'ai trouvé ce qui n'allait pas. Pour que vous puissiez monter ce genre de requêtes, je désosserai et vous expliquerai...
      0  0

  18. #518
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil Voir le message
    plus de 500 messages
    A 5000 on arrête ?

    Comme annoncé, je détaille la façon de procéder pour retrouver les différentiels affectés le plus récemment aux camions.

    Tout d’abord, on va mettre à profit l’algèbre relationnelle, ce qui permet de désosser les requêtes « gros pâtés » trop compliquées, pour passer par des requêtes de taille raisonnable et compréhensibles.

    SQL permet d’employer l’algèbre relationnelle au moyen de la construction WITH, grâce à laquelle on peut déclarer des variables de type table (par exemple t1, t2, t3 ci-dessous) que l’on peut tricoter, avec en fin de parcours un dernier SELECT permettant de récupérer le résultat final.

    Prenons le cas des différentiels de type 'forward'. Je pense que l’organisation de la vue est assez détaillée, mais vous me direz si des points vous paraissent obscurs...


    ----------------------------------------------------------------
    -- Les différentiels 'forward' par camion
    ----------------------------------------------------------------   
    go
    CREATE VIEW CAMION_FORWARD_V (CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, ForwardNumeroSerie, ForwardInstallationDate) 
    AS
    ---------------------------------------------------------------------------------------------
    -- Pour chaque paire {camion, essieu} on récupère la date la plus récente d'installation.
    -- On pourra filtrer sur ComposantType = 'forward' quand on aura mis en place le contrôle 
    -- selon lequel un essieu 'forward' héberge seulement un différentiel 'forward', 
    -- et qu'un différentiel 'forward' est hébergé seulement par un essieu 'forward'.
    -----------------------------------------------------------------------------------------------       
    WITH t1 AS (
                SELECT DISTINCT CamionVIN, CamionNumber, LocalisationId, MAX(ComposantInstallationDate) AS AxleInstallationDate, y.ComposantId 
                FROM   CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId
                                   JOIN AXLE AS z ON y.ComposantId = z.ComposantId    -- pour ne considérer que les essieux 
                                   JOIN COMPOSANT AS t ON t.ComposantId = y.ComposantId 
                GROUP BY LocalisationId, CamionVIN, CamionNumber, y.ComposantId
               )
    ----------------------------------------------------------------------------------------------------------------
    -- Pour chaque différentiel de type 'forward', 
    -- on récupère la date la plus récente d'installation sur essieu.
    ----------------------------------------------------------------------------------------------------------------       
    , t2 AS (
             SELECT y.AxleId, MAX(DiffInstalDate) AS theDiffInstalDate
             FROM   DIFF_AXLE AS y JOIN DIFFERENTIAL AS z ON z.DiffId = y.DiffId 
             WHERE  DiffType = 'forward'
             GROUP BY y.AxleId
            )
    ---------------------------------------------------------------------------------------------------------------
    -- Pour chaque différentiel 'forward' le plus récemment installé sur essieu, on récupère les informations
    -- obtenues via les variables t1, t2, à savoir le CamionVIN, le CamionNumber et, et tant qu'à faire, le
    -- numéro de série et la date d'installation de l'essieu hébergeant le différentiel.   
    ---------------------------------------------------------------------------------------------------------------
    , t3 AS (
             SELECT DISTINCT CamionVIN, CamionNumber, t2.Axleid, x.DiffId
                           , AxleSerialNumber, AxleInstallationDate
                           , DiffSerialNumber, theDiffInstalDate AS DiffInstallationDate
             FROM   t2 JOIN DIFF_AXLE as x on t2.Axleid = x.Axleid AND DiffInstalDate = theDiffInstalDate 
               JOIN t1 on t1.ComposantId = t2.AxleId 
               JOIN DIFFERENTIAL as y on x.DiffId = y.DiffId
               JOIN AXLE AS z ON t2.AxleId = z.ComposantId
            )
    ---------------------------------------------
    -- Production du résultat !
    ---------------------------------------------
    SELECT CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, DiffSerialNumber, DiffInstallationDate  
    FROM   t3
    ;
    Go
    
    ----------------------------------------
    -- Affichage du résultat
    ----------------------------------------
     SELECT '' AS CamionForward, * FROM CAMION_FORWARD_V ;
    


    Résultat global :



    Les vues concernant les différentiels 'front' et 'rear' sont les clones de celle concernant les différentiels 'forward', à ceci près que là où est présente la constante 'forward', on remplace par celle qui convient.

    Merci de secouer la base de données, car on n’est jamais à l’abri d’un erreur...


    N.B. Table DIFFERENTIAL, attribut DiffType : j’ai remplacé les lettres par des mots...

    Je remets à plat les bases de données temp et DZINDZIO_TRUCKS_MANAGEMENT_TEMP.

    Êtes-vous devenu adepte de l'abstention en matière de vote ?
    (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.
      1  0

  19. #519
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Ça je trouve que c'est gentil, ça me laisse une petite marge…

    Citation Envoyé par fsmrel
    A 5000 on arrête ?

    Wowww, Maintenant cette base de données commence vraiment à être intéressante pour l'usage à laquelle elle est destiné!!!

    1- Puisque les 'AXLE' et 'DIFFERENTIAL' sont des ensembles ayant comme résultante finale un Couple(Torque) = X, un GAWR = Y, un GVWR = Z ,,, nous devrions ajouter dans la table 'AXLE' le 'GVWR' et le 'AxleTorque' des 'AXLE'.


    2- Dans la vue CAMION_FRONT_V, Nous obtenons comme résultat :

    CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, ForwardNumeroSerie, ForwardInstallationDate.

    Est dire que vous considérez les différentiels 'Front' comme des 'Forward' ??? Ou est-ce une erreur ???


    3- Dans la vue 'CAMION_COMPOSITION_V' , pouvons-nous aussi inclure 'AxleNumeroSerie_Front', 'AxleNumeroSerie_Forward', 'AxleNumeroSerie_Rear' et 'DifferentielNumeroSerie_Front' ???


    De cette façon, cette vue serait complète et l'utilisateur n'aurait qu'à consulter cette vue pour avoir l'ensemble des numéros de série de ces composants advenant qu'il devrait en remplacer un ou trouver les pièces pour les réparer…



    J'ai hâte de tout inclure ces nouvelles tables et ces nouvelles vues dans le site WEB

    Je me suis amusé à créer un nouveau Camion sur le site WEB. C'est une étape assez longue à réaliser mais le résultat est concluant

    Je vais maintenant pouvoir inclure les 'AXLE' sur le site WEB. Lorsque j'aurai terminer je vous donnerai un accès pour que vous me donniez votre opinion et vos idées… Dans la version finale du site WEB, seul le compte Administrateur aura accès aux 'Tables' pour la création des Nouveaux Camions. Le compte 'Utilisateur avec pouvoir' pourra apporter des corrections et le compte 'Utilisateur sans pouvoir' n'aura accès qu'aux Vues en mode 'Read Only'. Sur le site WEB, je peux décider qui a accès à quelles 'Tables' et à quelles 'Vues'. Donc je pourrais avoir un utilisateur ayant accès seulement à la vue 'CAMION_COMPOSITION_V' , un autre utilisateur ayant accès à la vue 'CAMION_COMPOSITION_V' et à la vue 'CAMION_HUILE_V', etc...
    Il faudra essayer de rendre la gestion des changements d'huile un peu plus conviviale car les changements d'huiles devront inclure ceux du Moteur, de la Transmission et des AXLE… Pour les nouveaux changements d'huile, j'utiliserai le Camion Number et pour l'historique des changements d'huile j'utiliserai les numéros de série….
      0  0

  20. #520
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil
    Dans la vue CAMION_FRONT_V, Nous obtenons comme résultat :

    CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, ForwardNumeroSerie, ForwardInstallationDate.

    Est dire que vous considérez les différentiels 'Front' comme des 'Forward' ??? Ou est-ce une erreur ???
    Le whiskey est partie prenante. En recopiant la ligne :

    CREATE VIEW CAMION_FORWARD_V (CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, ForwardNumeroSerie, ForwardInstallationDate) 
    
    J’avais oublié de remplacer les termes "ForwardNumeroSerie" par "FrontNumeroSerie" et "ForwardInstallationDate" par "FrontInstallationDate".

    Maintenant on lit :

    CREATE VIEW CAMION_FRONT_V (CamionVIN, CamionNumber, AxleSerialNumber, AxleInstallationDate, FrontNumeroSerie, FrontInstallationDate) 
    
    Merci de vérifier.
    (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.
      1  0

Discussions similaires

  1. Ajout dans une table et relation avec d'autres
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 15h32
  2. Création table et relations
    Par ptitdragon_eric dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/09/2005, 13h37
  3. table de relation
    Par tanjonaravelson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/06/2005, 18h20
  4. Table de relation et sélection via jointure
    Par 73672 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 09/11/2004, 09h33
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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