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. #401
    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 Bonsoir fsmrel
    Nous ne pouvons pas mettre une chaine de caractère et imposer des choix au lieu de ('e', 't', 'a', 'd') ???

    '', CONSTRAINT COMPOSANT_TYPE_CHK CHECK (LOWER(ComposantType) IN ('e', 't', 'a', 'd'))'' ???



    Citation Envoyé par fsmrel Voir le message
    J’ai supprimé la table COMPOSANT_TYPE.

    La structure de la table COMPOSANT est donc modifiée. La colonne ComposantTypeId disparaît, tandis qu’est mise en oeuvre la colonne ComposantType, pouvant prendre les seules valeurs 'e', 't', 'a', 'd' (comme 'engine', 'transmission', 'axle', 'differential’') :
      0  0

  2. #402
    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
    Bien sûr, prenez soin de vous et quelques jours de repos vous feront du bien . Je travaille sur ''Axle" et "Differentiel" pour essayer d trouver la meilleur solution pour ne pas que vous ayez toujours à modifier.

    Citation Envoyé par fsmrel
    J’espère pouvoir attaquer la mise en oeuvre de la table AXLE, mais demain j’ai des soins et après-demain l’ophtalmo : je serai donc hors-service pendant ce temps...
      0  0

  3. #403
    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
    Peut-être que c'est aussi bien s'en tenir à ce que vous faites car je peux afficher ce que je veux sur le site WEB. On garde votre solution.

    Citation Envoyé par fsmrel
    Nous ne pouvons pas mettre une chaine de caractère et imposer des choix au lieu de ('e', 't', 'a', 'd') ???

    '', CONSTRAINT COMPOSANT_TYPE_CHK CHECK (LOWER(ComposantType) IN ('e', 't', 'a', 'd'))'' ???
      0  0

  4. #404
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Pour le moment, j’arrive encore à peu près à lire et écrire...


    Citation Envoyé par ordigil Voir le message
    Peut-être que c'est aussi bien s'en tenir à ce que vous faites car je peux afficher ce que je veux sur le site WEB.
    Vous vous conformez à une règle fondamentale, celle de l’indépendance des données, à propos de laquelle Ted Codd, père du modèle relationnel de données et Chris Date son fils spirituel ont toujours été très vigilants, règle que bien sûr j’ai toujours à l’esprit :

    Sous le capot (logique), c’est-à-dire en ce qui concerne les tables, on utilise les valeurs 'e', 't', 'a', 'd', tandis qu’au niveau externe l’utilisateur connaît en lieu et place 'engine', 'transmission', 'axle', 'differential', ou 'moteur', 'transmission', 'essieu', 'différentiel', voire tout autre système de valeurs lui convenant.

    C’est pour que l’on puisse satisfaire à l’indépendance des données que le concept de vue (table virtuelle) a été conçu par Ted Codd, et heureusement repris par les pères de SQL. Les SGBD existants n’ont manifestement pas été pensés ainsi, quand ils sont bâtis sur la base de l’équation simpliste : en interne, un enregistrement physique est l’image d’un enregistrement logique, c’est-à-dire une ligne de table : c’est en gros comme si une ligne d’une vue ne pouvait être l’image que d’une seule ligne d’une seule table.

    C’est en vertu de ce principe d’indépendance des données, qui conduit à celui de normalisation, que les modèles de composants et leurs fabricants devraient faire l’objet de tables dédiées, tandis que, grâce à une vue, on pourrait voir les données comme on les voit actuellement :

    COMPOSANT {ComposantId, Fabricant, Modèle, ...}


    Suite à normalisation :



    En l’absence de normalisation, il n’est pas possible de savoir, via la base de données, que tel fabricant propose tel modèle.

    En l’absence de normalisation, il faut s’assurer manuellement des redondances : qu’un modèle donné détermine un fabricant et un seul, etc.

    Mais je suppose que pour le moment vous avez d’autres soucis, et la structure de la table COMPOSANT pourra donc rester en l’état, non normalisée (en deuxième forme normale)...
    (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.
      2  0

  5. #405
    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
    Reposez-vous

    Et pour la base de données on utilise votre façon de faire qui suit un standard.
    Pour l'instant, c'est plus difficile pour moi de vous suivre mais lorsque la base de données sera terminer, j'aurai tout le temps nécessaire pour l'étudier dans les moindres détails. Alors on applique les normes standardisées puisque je veux que la base de données soit standard.


    Citation Envoyé par fsmrel Voir le message
    Pour le moment, j’arrive encore à peu près à lire et écrire...


    Mais je suppose que pour le moment vous avez d’autres soucis, et la structure de la table COMPOSANT pourra donc rester en l’état, non normalisée (en deuxième forme normale)...
      0  0

  6. #406
    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'ai ça comme Trigger dans la BD "SERIAL_NUMBER_AUTOFILL"
    Bien que ça fonctionne très bien……., pour l'instant,...euhhhhh,... ce n'est pas élégant ni standard… D'autant plus que je vais devoir créer des tables pour les valeurs utilisés dans les CASE. Je vais avoir d'autre CASE pour d'autre colonnes qui incluront des CASE sur la colonne 'DateMFG' et une colonne qui sera remplie à l'aide d'une partie d'une autre colonne plus le résultat obtenue à l'aide du CASE de 'DateMFG" Donc pour le EPAFamilyNumber dans ce format FDDXH14.8EED qui donne --->*'F' + 'DDX' + 'H' + '14.8' + 'EED',

    'F' = 'ModelYearCode'
    'DDX' = 'ManufacturerCode'
    'H' = 'IndustrySectorCode'
    '14.8' = 'Engine DisplacementCode' ou 'FamilyTypeDescriptorCode'
    'EED' = 'ManufacturerEngineCode'

    Alors pour cet exemple 'F' = '2015', 'DDX' = Detroit', 'H' = 'Heavy Duty Highway Diesel', '14,8' = 14.8 L, 'EED' = 'EED'

    Pour l'instant j'ai ça et les CASE sur 'DateMFG' ne sont pas inclus :

    USE [SERIAL_NUMBER_AUTOFILL]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER TRIGGER [dbo].[AUTOFILL_FROM_FULLSERIALNUMBER] 
       ON  [dbo].[ENGINE_SPECS]
       AFTER INSERT, UPDATE
    AS 
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
    
    
    UPDATE ENGINE_SPECS
    
    SET   EngineSerie          =   LEFT( FullSerialNumber, 3 ),
          Displacement         =   LEFT( FullSerialNumber, 3 ),
          ModelNumber          =   'D' + LEFT( FullSerialNumber, 3 ) + SUBSTRING ( FullSerialNumber , 4 , 3),
          VehiculeApplication  =   SUBSTRING ( FullSerialNumber , 4 , 3),
          AssemblyPlant        =   SUBSTRING ( FullSerialNumber , 7 , 1 ),
          EngineSerialNumber   =   RIGHT(FullSerialNumber, 7)
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  ModelNumber = ModelNumber
    
        END
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  EngineSerie =
    
        CASE EngineSerie 
    
            WHEN '471' THEN 'DD13'
            WHEN '472' THEN 'DD15'
            WHEN '473' THEN 'DD16'
            ELSE 'Please Update'
        END
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  Displacement =
    
        CASE Displacement 
    
            WHEN '471' THEN '13.8 L'
            WHEN '472' THEN '14.8 L'
            WHEN '473' THEN '15.8 L'
            ELSE 'Please Update'
        END
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  VehiculeApplication =
    
        CASE VehiculeApplication 
    
            WHEN '901'       THEN 'Freightliner'
            WHEN '902'       THEN 'Sterling'
            WHEN '903'       THEN 'Freightliner'
            WHEN '904'       THEN 'WesternStar'
            WHEN '907'       THEN 'Export Australia'
            WHEN '908'       THEN 'Export Chili, Mexico'
            WHEN '909'       THEN 'TurboCompound'
            WHEN '910'       THEN 'Sterling'
            WHEN '915'       THEN 'Export Australia'
            ELSE 'Please Update'
        END
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  AssemblyPlant =
    
        CASE AssemblyPlant
    
            WHEN 'S' THEN 'Detroit'
                     ELSE 'Please Update'
        END
    
    ;
    
    UPDATE ENGINE_SPECS
    
    SET  EngineSerialNumber = EngineSerialNumber
    
    ;
    
    
    GO

    Pour le test en entrant uniquement le numéro de série:

    USE [SERIAL_NUMBER_AUTOFILL]
    
    BEGIN TRANSACTION
    
    INSERT INTO [dbo].[ENGINE_SPECS]
               ([FullSerialNumber])
        VALUES
              ('472909S0314133')
            , ('471901S4474800')
            , ('475904T5554364')
            , ('472907S7655823')
            , ('479001S6654390')
            , ('473910R6544989')
            , ('471907S5356604')
            , ('470914S6679543')
            , ('471902T5574681')
            , ('472903S3434555')
            , ('473908S5574681')
    ;
    
    GO
    
    SELECT * FROM ENGINE_SPECS
    ;
    
     ROLLBACK
    
    Pièce jointe 420458

    Même si ça fonctionne, je n'ai pas conçu le Trigger de la bonne façon à partir du début alors c'est très répétitif dans le Code, mais je ne sais pas comment le développer correctement.
      0  0

  7. #407
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Le trigger n’est ici qu’un choix technique, on pourra s’en occuper plus tard. Plus important : passer du cas particulier au cas général.


    Prenons par exemple le cas de la colonne AssemblyPlant :

    SUBSTRING(FullSerialNumber, 7, 1)

    Les valeurs « 7 » et « 1 » sont-elles valables quels que soient les numéros de série, tous fabricants confondus, ou bien seulement dans le cas de Detroit ?

    Sinon, on tend vers :

    SUBSTRING(FullSerialNumber, @SnPosition, @SnLongueur)

    Où les variables @SnPosition et @SnLongueur prennent leurs valeurs en fonction du fabricant.

    Qu’en est-il dans le cas général comme ci-dessous ? Les constantes sont-elles là encore à remplacer systématiquement par des variables ?

    SET   EngineSerie          =   LEFT( FullSerialNumber, 3 ),
          Displacement         =   LEFT( FullSerialNumber, 3 ),
          ModelNumber          =   'D' + LEFT( FullSerialNumber, 3 ) + SUBSTRING ( FullSerialNumber , 4 , 3),
          VehiculeApplication  =   SUBSTRING ( FullSerialNumber , 4 , 3),
          AssemblyPlant        =   SUBSTRING ( FullSerialNumber , 7 , 1 ),
          EngineSerialNumber   =   RIGHT(FullSerialNumber, 7)
    ;
    
    Par ailleurs, tous les fabricants sont-ils astreints à encoder dans le FullSeriaNumber les différents éléments EngineSerie, Displacement, etc. ?
    (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.
      2  0

  8. #408
    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
    Pour le 'FullSerialNumber', il n'y a pas de standard, chaque manufacturier utilise le nombre de chiffres qu'il veut et détermine ce que chaque groupe de chiffres chiffres veux dire. Donc pour l'instant 'FullSerialNumber' n'est valide que pour 'Detroit'. Si le manucturier est different de 'Detroit', pour l'instant l'usager devra remplir toutes les colonnes manuellement. Donc IF 'Manufacturer' = 'Detroit', les colonnes se remplissent seules et si 'Manufacturer' <> 'Detroit', l'utilisateur doit remplir toutes les colonnes lui-même.

    Il ne faut pas confondre Detroit, une Ville américaine et Detroit, le Manufacturier. Dans le FullSerialNumber '473908S5574681', qui est valide uniquement pour le 'Manufacturier' = 'Detroit' : SUBSTRING ( FullSerialNumber , 7 , 1 ) représente la ville 'Detroit'. Il faut lire '473' + '908' + 'S' + '5574681' où 'S' = Ville de Détroit. Si SUBSTRING ( FullSerialNumber , 7 , 1 ) = 'une autre lettre' alors ça représente une autre Ville.

    Donc ceci n'est valide que si 'Manufaturer = 'Detroit'.

    SET   EngineSerie          =   LEFT( FullSerialNumber, 3 ),
          Displacement         =   LEFT( FullSerialNumber, 3 ),
          ModelNumber          =   'D' + LEFT( FullSerialNumber, 3 ) + SUBSTRING ( FullSerialNumber , 4 , 3),
          VehiculeApplication  =   SUBSTRING ( FullSerialNumber , 4 , 3),
          AssemblyPlant        =   SUBSTRING ( FullSerialNumber , 7 , 1 ),
          EngineSerialNumber   =   RIGHT(FullSerialNumber, 7)
    ;
    


    Pour le 'EPAFamilyNumber', il y a un standard d'établie par le gouvernement alors chaque groupe de chiffres a la même signification pour tous les manufacturiers. Dans le cas de pour le 'EPAFamilyNumber' dans 'FDDXH14.8EED', DDX est le code à trois caractère unique qui désigne 'Detroit', pas la ville mais le manufacturier 'Detroit Diesel Engine' Donc FDDXH14.8EED doit se lire 'F' + 'DDX' + 'H' + '14.8' + 'EED'.





    Citation Envoyé par fsmrel Voir le message
    Le trigger n’est ici qu’un choix technique, on pourra s’en occuper plus tard. Plus important : passer du cas particulier au cas général.


    Prenons par exemple le cas de la colonne AssemblyPlant :

    SUBSTRING(FullSerialNumber, 7, 1)

    Les valeurs « 7 » et « 1 » sont-elles valables quels que soient les numéros de série, tous fabricants confondus, ou bien seulement dans le cas de Detroit ?

    Sinon, on tend vers :

    SUBSTRING(FullSerialNumber, @SnPosition, @SnLongueur)

    Où les variables @SnPosition et @SnLongueur prennent leurs valeurs en fonction du fabricant.

    Qu’en est-il dans le cas général comme ci-dessous ? Les constantes sont-elles là encore à remplacer systématiquement par des variables ?

    SET   EngineSerie          =   LEFT( FullSerialNumber, 3 ),
          Displacement         =   LEFT( FullSerialNumber, 3 ),
          ModelNumber          =   'D' + LEFT( FullSerialNumber, 3 ) + SUBSTRING ( FullSerialNumber , 4 , 3),
          VehiculeApplication  =   SUBSTRING ( FullSerialNumber , 4 , 3),
          AssemblyPlant        =   SUBSTRING ( FullSerialNumber , 7 , 1 ),
          EngineSerialNumber   =   RIGHT(FullSerialNumber, 7)
    ;
    
    Par ailleurs, tous les fabricants sont-ils astreints à encoder dans le FullSeriaNumber les différents éléments EngineSerie, Displacement, etc. ?
      0  0

  9. #409
    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
    Je vous annonce mon divorce officiel d'avec Cortana. J'ai créé une nouvelle clé dans la base de registre pour la désactiver. Cette "bitch" qui vous espionne 24 heures par jour et qui partage tout avec son père Microsoft est responsable de 95 % des plantages de votre ordinateur.

    Résultat = Baisse de 20 Celsius de la température de mon portable. Faut le faire.

    Avec Cortana plantage systématique de mon portable à 87 Celsius avec le ventilateur tournant à la vitesse Maximum et incapable de refroidir le CPU.
    Maintenant, après un "Burning Test" du CPU à 100% d'utilisation pendant 1 1/2 heure, Température Max de 87 Celsius du CPU. Le ventilateur tournant à la vitesse maximum à cette température, je vois la température de mon CPU redescendre. Donc à 100 % d'utilisation mon CPU se maintient à 87 Celsius et plus de plantage. Non je ne suis pas inquiet à 87 Celsius, le T4200 d'INTEL est un char d'assaut qui peut atteindre une température de fonctionnement Maximum de 105 Celsius.

    Adieu Cortana, bon débarra...

    Maintenant fsmrel, on peut en développer des bases de données sur ce petit portable qui sert de serveur de développement HTTP et SQL pour les cours SQL que vous me donner avec tant de patience et de gentillesse...

    fsmrel merci pour votre aide, je l'apprécie énormément.
      1  0

  10. #410
    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 :-)
    Puisque "TEMP" semble fonctionner convenablement, on pourrait mettre à jour "DZINDZIO_TRUCKS_MANAGEMENT_TEMP" avec "TEMP" pour que je mette le Serveur HTTP à jour et que je fasse des tests sur le serveur WEB. Êtes-vous d'accord ???
      0  0

  11. #411
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Ma vue va mieux, j'arrive à voir ce qui s'affiche à l'écran…


    Citation Envoyé par ordigil Voir le message
    Puisque "TEMP" semble fonctionner convenablement, on pourrait mettre à jour "DZINDZIO_TRUCKS_MANAGEMENT_TEMP" avec "TEMP" pour que je mette le Serveur HTTP à jour et que je fasse des tests sur le serveur WEB. Êtes-vous d'accord ???
    D’accord, j’ai mis à jour DZINDZIO_TRUCKS_MANAGEMENT_TEMP.


    Par ailleurs, étant donné qu’il faudra modéliser de façon précise ce qui a trait aux essieux, j’ai mis à jour la base de données Temp_bis avec une version dans laquelle j’ai renommé la table DIFFERENTIEL en AXLE.

    En contrepartie, j’y ai défini une nouvelle table DIFFERENTIEL, mais réduite pour le moment à sa plus simple expression :

    --------------------------------------------------
    --Différentiels
    --------------------------------------------------
    CREATE TABLE DIFFERENTIEL 
    (
            ComposantId              INT             NOT NULL
          , DifferentielNumeroSerie  VARCHAR(25)     NOT NULL
        , CONSTRAINT DIFFERENTIEL_PK PRIMARY KEY (ComposantId)
        , CONSTRAINT DIFFERENTIEL_AK UNIQUE (DifferentielNumeroSerie)
        , CONSTRAINT DIFFERENTIEL_COMPOSANT_FK FOREIGN KEY (ComposantId)
              REFERENCES COMPOSANT (ComposantId) ON DELETE CASCADE
    );
    
    (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.
      2  0

  12. #412
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Dans le post #191, vous évoquiez la catégorie des essieux : "FORWARD" et "REAR".

    Par la suite, dans le post #308 :

    Citation Envoyé par ordigil
    il faudra que lors de la création nous puissions dire si c'est un FRAxle, un IntermediateAxle, un ForwardRearAxle ou un RearRearAxle car ils ne sont pas interchangeables

    Les 4 catégories dont vous faites mention affinent-elles (donc supplantent) celles du post #191 (moins précises) ?


    Dans le post #229, les catégories d’essieux seraient les suivantes :


    Citation Envoyé par ordigil
    "FRONTAXLE, des FORWARDREARAXLE, et des REARREARAXLE

    Qu’en est-il en l’occurrence de la catégorie IntermediateAxle ?
    (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.
      2  0

  13. #413
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Dans le post #229, vous écrivez :

    Citation Envoyé par ordigil
    Lorsqu'ils sont sur un tandem ou un tridem, c'est à dire lorsqu'un camion à 2 ou 3 essieux moteur (les essieux moteurs sont les essieux qui ont un différentiel).

    Il est impossible d'intervertir l'ordre des essieux qui ont des différentiels, c'est à dire qu'un essieu/différentiel 2ND ne peut pas se retrouver physiquement à la place du 3RD et que le 3RD ne peut pas se retrouver physiquement à la place du 2ND.
    De même qu’il y a des papous papas et des papous pas papas, il y a donc des essieux moteurs et des essieux pas moteurs. Est-il utile pour vous de conserver dans la table ad-hoc (disons AXLE) l’information selon laquelle un essieu est moteur ou pas ? En tout cas, conserver l’information permettrait d’empêcher de trouver dans la base de données des essieux non moteurs associés à des différentiels...


    Toujours dans le post #229 :

    Citation Envoyé par ordigil
    Il y a une seule exception dans cette règle, c'est si le propriétaire décide d'enlever un essieu arrière. Donc le camion qui avait un FRGAWR, un 2NDGAWR et un 3RDGAWR, deviendra un camion avec un FRGAWR et un REARGAWR. Dans cette situation, le propriétaire utilisera le même REARREARAXLE sur ce camion et il deviendra un REARAXLE.

    Si je vous suis, c’est soit le 2NDGAWR, soit le 3RDGAWR qui est conservé pour le camion. Garde-t-on dans la base de données la trace de cette amputation ? Autrement dit, doit-on savoir qu’à la date D1, le camion est équipé d’un FRGAWR, un 2NDGAWR et un 3RDGAWR, et qu’à la date D2 un essieu (soit le 2NDGAWR, soit le 3RDGAWR) a été ôté, et que celui (lequel ?) qui est resté est devenu un REARGAWR ?


    Encore dans le post #229 :

    Pour l'essieu avant qui se nomme FRONTAXLE "Essieu Directeur car son but est de diriger le véhicule", règle générale, un camion n'a pas de différentiel sur son FRONTAXLE mais il a quand même un FRGAWR.

    Comme vous avez écrit que les essieux moteurs sont ceux qui ont un différentiel, j’en déduis qu’un essieu directeur (c’est-à-dire un FRONTAXLE) n’est pas un essieu moteur. Pourriez-vous éclairer ma lanterne à ce sujet ?

    Quand vous dites qu’il a quand même un FRGAWR, cette fois-ci je suis largué... Il est où ce FRGAWR par rapport au FRONTAXLE ?

    Plus précisément, quelles sont les relations exactes (sous forme d’un tableau par exemple) entre l’ensemble {FRAxle, IntermediateAxle, ForwardRearAxle, RearRearAxle} d’une part et l’ensemble {FRGAWR, 2NDGAWR, 3RDGAWR, 4THGAWR, ..., REARGAWR} d’autre part ?
    (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.
      2  0

  14. #414
    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
    Non ce n'est pas ça que je veux dire. Un RearAxel peut être seul sur un Camion mais un ForwardAxle ne peut pas être seul. Un ForwardAxle a un arbre de transmission sur le devant qui est relié à la transmission et un arbre de transmission qui est relié au RearAxle. Le RearAxle a seulement un arbre de transmission relié soit à la transmission, soit au ForwardAxle.

    Donc dans la table AXLE nous aurons :

    1- FRAxle qui sont des essieux directeurs (Steer Axle ou Steering Axle en anglais) ceux qui permettent de diriger le véhicule, normalement situés à l'avant du véhicule. Ils peuvent être des essieux moteurs s'ils ont un différentiel et un arbre de transmission.

    2- ForwardAxle qui sont soit des essieux moteurs ou des essieux porteurs qui reçoivent "deux" arbres de transmission s'ils sont des essieux moteurs.

    3- RearAxle qui sont soit des essieux moteurs ou des essieux porteurs qui reçoivent "un" arbre de transmission s'ils sont des essieux moteurs.

    Un ForwardAxle Moteur n'est jamais installé seul. Il y a toujours un RearAxle Moteur au bout de la chaine.

    Exemples:

    1 - FRAxle + RearAxle
    2 - FRAxle + RearAxle + RearRearAxle
    3 - FRAxle + ForwardAxle + RearAxle
    4 - FRAxle + ForwardAxle + ForwardAxle + RearAxle
    5 - FRAxle + ForwardAxle + ForwardAxle + ForwardAxle + RearAxle
    6 - FRAxle + ForwardAxle + ForwardAxle + RearAxle + RearRearAxle
    7 - FRAxle + IntermediateAxle + IntermediateAxle + ForwardAxle + ForwardAxle + RearAxle
    8 - FRAxle + IntermediateAxle + IntermediateAxle + ForwardAxle + ForwardAxle + RearAxle + RearRearAxle


    Assez difficile à expliquer

    Citation Envoyé par fsmrel
    Si je vous suis, c’est soit le 2NDGAWR, soit le 3RDGAWR qui est conservé pour le camion.


    Pièce jointe 420916
      1  0

  15. #415
    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
    Ce monsieur a gentiment accepté de vous montrer le dessous de son camion pour que vous puissiez comprendre. Vous voyez à l'arrière, il y a un essieux relevable sans différentiel. Donc un IntermediateAxle. Certain le nommeront un Pusher Axle.
    N'oubliez pas de remerciez le gentil monsieur

    Pièce jointe 420919
      1  0

  16. #416
    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 est bon de poser des questions car il peut arriver que je fasse une erreur

    FRGAWR est le poids que peut supporter le FRONTAXLE

    Tous les 'GAWR' sont des poids
    Tous les 'AXLE' sont des composants physique.

    Ne pas confondre un FrontAxle et un ForwardAxle

    Donc FrontAxle c'est l'essieu du devant relié au volant pour diriger le véhicule. Le FRGAWR c'est le poids que peut supporter ce FrontAxle. FR est l'abréviation de FRONT FR(ONT)

    ForwardAxle c'est l'essieu devant le RearAxle sur un Tandem. Tandem ===>> En français le vrai terme est ''Pont arrière tandem" ou "Essieux jumelés"


    Donc tous les essieux ont un GAWR. Une fois installés sur le camion dépendamment où on les installe, le poids supporté par les essieux deviennent FRGAWR, 2NDGAWR, 3RDGAWR, 4THGAWR, 5THGAWR, etc..

    Abréviations:

    FRONTAxle = (FR)ONTAxle = FRAxle "Le 'FRGAWR' est le poids que peut supporter le 'FRONTAXLE'. Donc le 'FRGAWR' est le poids que peut supporter le 'FRAxle'
    SecondAxle = Seco(ND)Axle = 2NDAxle
    ThirdAxle = Thi(RD)Axle = 3RDAxle
    ForthAxle = For(TH)Axle = 4THAxle
    FifthAxle = Fif(TH)Axle = 5THAxle
    SixthAxle = Six(TH)Axle = 6THAxle
    SeventhAxle = Seven(TH)Axle = 7THAxle

    Est-ce que j'ai bien expliqué ???? GAWR = "Gross Axle Weight Rating", c'est une mesure de poids en livres ou en Kilogrammes maximum que peut supporter un essieu. Donc 'FRGAWR' = 'Gross Axle Weight Rating' du 'FRontAxle' ou 'FRAxle'. FrontAxle est la même chose que FRAxle, c'est l'essieu qui est relié au volant que vous tenez entre vos mains

    Citation Envoyé par fsmrel
    Il est où ce FRGAWR par rapport au FRONTAXLE ?



      1  0

  17. #417
    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 savez les essieux c'est très difficile à comprendre et encore plus difficile à expliquer car différentes personnes les nommes différemment…

    Imaginez en anglais, la sellette d'attelage, il appelle ça FifthWheel….. En français --->*Cinquième roue…..
      0  0

  18. #418
    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
    Maintenant ça se complique car dans ce cours, ils nomment l'essieu directeur "Steer Axle", le premier essieu d'un tandem "FrontAxle" et le second "Rear Axle". Dans la réalité nous nommons l'essieu directeur "Steer Axle", le premier essieu d'un tandem "Forward Axle" et le second "Rear Axle". Par contre sur l'étiquette des poids d'un véhicule ils utilisent pour l'essieu directeur "Front Axle", le premier essieu d'un tandem "2ND Axle" et le second "3RD Axle" .....

    Et là ici dans mon garage, j'ai un camion Freightliner 2015 et sur l'étiquette il est mentionné pour l'essieu directeur "Front Axle", le premier essieu du tandem "First Intermediate Axle" et le second essieu du tandem "Rear Axle"

    Et sur le l'International 1999, il est écrit sur l'étiquette pour l'essieu directeur "Front Axle", pour le premier essieu du tandem "Front Rear Axle" et le second "Rear Rear Axle"

    Alors comment allons-nous nommer nos AXLES ???

    C'est la folie les essieux hahaha. Il n'y a pas de standard d'établie, même entre deux camions du même manufacturier ça change LoL


    Et encore, je ne vous ai pas tout montrer, vous trouveriez ça encore plus fou
    Pièce jointe 420926


    Alors pour notre base de données nous pourrions utiliser Steering Axle pour l'essieux directeur, celui relié au volant pour diriger le véhicule donc Steering = STR donc 'STRAxle'.
    Tous les autres essieux, nous pourrions les nommer Intermediate Axle, donc Intermediate = Int = 'IntAxle' à l'exception de l'essieu qui termine la chaine des essieux moteur on le nomme Rear Axle donc 'RearAxle'. Il peux avoir un autre essieu après le RearAxle, et il n'est pas un essieu moteur alors 'RearRearAxle'.


    Dans le cours :

    There are three categories of non-driving or dead axles.

    1- Steering axles
    2- Lift and tag axles
    3- Trailer axles

    Axles can be divided into live axles and dead axles.

    Live axles are drive axles; they house the gearing required to change the direction of powerflow and produce differential action.
    Dead axles are designed to support chassis loads.

    Dead axles include :

    1- Steering axles
    2- Tag axles or Lift Axles
    3- Pusher axles
    4- And various types of trailer axles.

    A pusher axle is in front of the drive axles and a tag axle is behind them.

    Me suivez-vous encore dans les explications ? hahaha

    Les essieux c'est la folie hahaha
      0  0

  19. #419
    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
    Ce camion on le nomme : 12 X 4 Twin Steer. 12 parce qu'il a 12 sets de roues. X 4 parce qu'il a 2 différentiels. Twin Steer parce qu'il a 2 essieux directeurs.

    Le deuxième essieu de direction est un essieu relevable donc un "Lift 2NDSteer Axle" donc "2NDSTRAxle". pour le poids 2NDGAWR
    Le premier essieu arrière est relevable sans différentiel donc un "Lift Pusher Axle" identifié "6THIntAxle". pour le poids 3RDGAWR
    Le deuxième essieu arrière est fixe sans différentiel donc un "Pusher Axle" identifié "5THIntAxle. pour le poids 4THGAWR
    Le troisième essieux arrière est fixe et a un différentiel donc "Forward Axle" identifié "4RDIntAxle. pour le poids 5THGAWR
    Le dernier essieu arrière est fixe et a un différentiel donc "RearAxle" identifié "RearAxle". pour le poids 6THGAWR

    S'il y avait un autre essieu sans différentiel après le dernier essieu arrière ce serait un "Tag Axle" ou "Rear Rear Axle" et s'il était relevable "Lift Tag Axle"

    Remarquez qu'un autre manufacturier l'aurait identifié comme :

    Le deuxième essieu de direction est un essieu relevable donc un "Lift 2NDSteer Axle" donc "2NDSTRAxle". pour le poids 2NDGAWR
    Le premier essieu arrière est relevable sans différentiel donc un "Lift Pusher Axle" identifié "3RDIntAxle". pour le poids 3RDGAWR
    Le deuxième essieu arrière est fixe sans différentiel donc un "Pusher Axle" identifié "4THIntAxle. pour le poids 4THGAWR
    Le troisième essieux arrière est fixe et a un différentiel donc "Forward Axle" identifié "5THIntAxle. pour le poids 5THGAWR
    Le dernier essieu arrière est fixe et a un différentiel donc "RearAxle" identifié "RearAxle". pour le poids 6THGAWR

    Et un autre manufacturier l'aurait identifié comme :

    Le deuxième essieu de direction est un essieu relevable donc un "Lift 2NDSteer Axle" donc "2NDSTRAxle"... Pour le poids 2NDGAWR
    Le premier essieu arrière est relevable sans différentiel donc un "Lift Pusher Axle" identifié "3RDAxle"... Pour le poids 3RDGAWR
    Le deuxième essieu arrière est fixe sans différentiel donc un "Pusher Axle" identifié "4THtAxle... Pour le poids 4THGAWR
    Le troisième essieux arrière est fixe et a un différentiel donc "Forward Axle" identifié "5THAxle... Pour le poids 5THGAWR
    Le dernier essieu arrière est fixe et a un différentiel donc "RearAxle" identifié "RearAxle". Pour le poids 6THGAWR

    Plus personne ne se comprend

    Pièce jointe 420930
      1  0

  20. #420
    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 fsmrel hahaha
    Je ne sais pas comment on peut modéliser quelque chose qui n'a pas de standard respecté…
    C'est pour cette raison qu'au tout début j'avais simplifier au maximum.
    Dans vos questions vous avez assez bien compris dans l'ensemble. Si vous faites la tournée des mécaniciens et des camionneurs, vous réaliserez qu'il n'y a personne qui comprend la même chose à propos des essieux. Le problème est que les manufacturiers ne se sont pas entendu sur un standard pour nommer les essieux et la façon des numéroter.
      0  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