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. #961
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Je n'ai pas accès au serveur (SQL Server)...
    (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. #962
    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 : 380
    Points
    380
    Par défaut
    oupssssss Il était off, j'avais oublié de mettre une politique de redémarrage automatique du container lorsque je redémarre le serveur :-( Désolé

    J'espère que j'ai bien configuré le redémarrage automatique. On le saura la prochaine fois que je redémarre le serveur


    Citation Envoyé par fsmrel Voir le message
    Je n'ai pas accès au serveur (SQL Server)...
      0  0

  3. #963
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil et les courageux qui suivent :-)


    Petit supplément à ce que j’ai proposé le 20 février (post #946) :
    Pour bétonner un peu plus la base de données et nous simplifier la vie dans le codage des requêtes SQL relatives aux transmissions, j’ai ajouté la colonne TransmissionTypeShort à la table COMPONENT_MODEL_TRANSMISSION.



    (1) Si vous n’avez pas encore créé la table COMPONENT_MODEL_TRANSMISSION (ou si elle est vide), vous pouvez le faire ainsi :

    --------------------------------------------------------------------------
    -- Les modèles de transmissions des manufacturiers de composants
    --------------------------------------------------------------------------
    
    DROP TABLE IF EXISTS COMPONENT_MODEL_TRANSMISSION ;
    
    CREATE TABLE COMPONENT_MODEL_TRANSMISSION
    (
            ComponentManufacturerId   INT               NOT NULL
          , ComponentModelId          INT               NOT NULL
          , TransmissionSpeed         INT               NOT NULL DEFAULT 0
          , TransmissionTorque        INT               NOT NULL DEFAULT 0
          , TransmissionType          VARCHAR(16)       NOT NULL DEFAULT 'Primary'
          , TransmissionTypeShort     CHAR(1)           NOT NULL DEFAULT 't'
        , CONSTRAINT COMPONENT_MODEL_TRANSMISSION_PK PRIMARY KEY (ComponentManufacturerId, ComponentModelId)
        , CONSTRAINT COMPONENT_MODEL_TRANSMISSION_FK FOREIGN KEY (ComponentManufacturerId, ComponentModelId)
                     REFERENCES COMPONENT_MODEL (ComponentManufacturerId, ComponentModelId)
                     ON DELETE CASCADE
        , CONSTRAINT COMPONENT_MODEL_TRANSMISSION_TYPE_CHK 
              CHECK (LOWER(TransmissionType) = 'primary' AND LOWER(TransmissionTypeShort) = 't'
                  OR LOWER(TransmissionType) = 'auxiliary' AND LOWER(TransmissionTypeShort) = 'x')
    ) ;
    
    Où vous noterez que pour une transmission principale (primary), le type court est nécessairement 't', et 'x' pour une transmission auxiliaire.

    Si vous avez déjà créé la table COMPONENT_MODEL_TRANSMISSION et qu’elle contient des lignes, vous pouvez procéder comme ci-dessus puis recharger les lignes, ou bien vous pouvez procéder ainsi :

    – Ajouter la colonne TransmissionTypeShort :

    ALTER TABLE COMPONENT_MODEL_TRANSMISSION ADD TransmissionTypeShort CHAR(1) NOT NULL DEFAULT 't' ;
    
    – Ajouter la contrainte :

    ALTER TABLE COMPONENT_MODEL_TRANSMISSION ADD CONSTRAINT COMPONENT_MODEL_TRANSMISSION_TYPE_CHK 
        CHECK (LOWER(TransmissionType) = 'primary' AND LOWER(TransmissionTypeShort) = 't'
               OR LOWER(TransmissionType) = 'auxiliary' AND LOWER(TransmissionTypeShort) = 'x')
    
    Au cas où la colonne TransmissionTorque serait absente de votre table COMPONENT_MODEL_TRANSMISSION :

    ALTER TABLE COMPONENT_MODEL_TRANSMISSION ADD TransmissionTorque INT NOT NULL DEFAULT 0 ;
    
    (2) Dans un deuxième temps, on crée la vue COMPONENT_MODEL_TRANSMISSION_V :

     ----------------------------------------------------------
     -- Les modèles de transmissions des manufacturiers
     ----------------------------------------------------------
    
    CREATE VIEW COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName
                                              , TransmissionSpeed, TransmissionTorque
                                              , TransmissionType, TransmissionTypeShort)
    AS
     SELECT ContactName, ComponentModelName, TransmissionSpeed, TransmissionTorque
          , TransmissionType, TransmissionTypeShort 
     FROM   COMPONENT_MODEL AS x 
       JOIN MANUFACTURER AS y ON x.ComponentManufacturerId  = y.ManufacturerId
       JOIN CONTACT AS z ON z.ContactId = y.ManufacturerId
       JOIN COMPONENT_MODEL_TRANSMISSION AS t ON t.ComponentManufacturerId = x.ComponentManufacturerId
                                             AND t.ComponentModelId = x.ComponentModelId
     ;
    
    (3) On crée dans la foulée les triggers permettant de mettre à jour la vue :

    – COMPONENT_MODEL_TRANSMISSION_INSERT_TR
    – COMPONENT_MODEL_TRANSMISSION_UPDATE_TR
    – COMPONENT_MODEL_TRANSMISSION_DELETE_TR

    (4) Un jeu d’essai, avec BEGIN TRANSACTION / ROLLBACK pour ne pas perturber l’existant :

    ------------------------------------------------------
    -- Tests modèles de transmissions (insert, update)
    ------------------------------------------------------
    
    BEGIN TRANSACTION ;
    
    DELETE FROM COMPOSANT WHERE ComposantType IN ('t', 'x') ;
    
    DELETE FROM COMPONENT_MODEL_TRANSMISSION_V ;
    
    DELETE FROM COMPONENT_MODEL_V WHERE ModelName IN 
       (
         'RTLO-16913A', 'RTLO-16913B', 'RTLO-16913A-1', 'RTLO-16913B-2'
       , 'Trans Modèle 1', 'Trans Modèle 2', 'Modèle Trans bis' 
       )
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT 'Eaton Fuller', 'RTLO-16913A test', 13
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT 'Eaton Fuller', 'RTLO-16913B test', 13
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT 'Eaton Fuller 1', 'RTLO-16913A-1 test', 13
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT 'Eaton Minimum 2', 'RTLO-16913B-2 test', 13
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT  'Leclerc Manufacturier', 'Trans Modèle 1 test', 13     
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed)
        SELECT  'Leclerc Manufacturier', 'Trans Modèle 2 test', 16     
    
    INSERT INTO COMPONENT_MODEL_TRANSMISSION_V (ManufacturerName, ModelName, TransmissionSpeed
                                              , TransmissionType)
        SELECT 'Brassens Manufacturier', 'Modèle Trans bis test', 18, 'Auxiliary'
    
    UPDATE  COMPONENT_MODEL_TRANSMISSION_V
        SET ModelName = 'RTLO-16913A updated'
          , TransmissionSpeed = 24, TransmissionTorque = 2400, TransmissionType = 'auxiliary'
        WHERE ManufacturerName = 'Eaton Fuller' AND ModelName = 'RTLO-16913A test' 
    ;
      ROLLBACK ;
    
    Noter que par défaut, les modèles de transmission sont du type 'Primary'.
    Le modèle 'Modèle Trans bis test' est du type 'Auxiliary'.
    Il est inutile de préciser la valeur pour la colonne TransmissionTypeShort, le trigger la force systématiquement, quoi qu’on code.

    Dès que possible, je vais mettre à jour la partie Transmissions (composants) proprement dite.
    (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  0

  4. #964
    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 : 380
    Points
    380
    Par défaut
    Je ne comprend plus rien....
    Mais je peux déboguer SQL Server lorsque vous n'avez pas d'accès
    Et je peux faire le sîte WEB aussi LoL


    Citation Envoyé par fsmrel
    Bonsoir Ordigil et les courageux qui suivent :-)


    Petit supplément à ce que j’ai proposé le 20 février (post #946) :
    Pour bétonner un peu plus la base de données et nous simplifier la vie dans le codage des requêtes SQL relatives aux transmissions, j’ai ajouté la colonne TransmissionTypeShort à la table COMPONENT_MODEL_TRANSMISSION.
      0  0

  5. #965
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Transmissions, suite.

    (1) Comme elles ont migré vers la table COMPONENT_MODEL_TRANSMISSION, on supprime les colonnes TransmissionVitesses, TransmissionType de la table TRANSMISSION. SQL Server a généré des noms à la noix pour certaines contraintes portant sur ces colonnes : on supprime les contraintes manuellement.

    --------------------------------------------------------------------------
    -- Les transmissions - mise à niveau de la table TRANSMISSION
    --
    -- Les colonnes TransmissionVitesses et TransmissionType font désormais
    -- partie de la table COMPONENT_MODEL_TRANSMISSION et doivent donc
    -- être supprimées. Pour y parvenir, if faut d'abord supprimer 
    -- (manuellement) les contraintes qu'elles possèdent. 
    --
    --------------------------------------------------------------------------
    
    -- une fois les contraintes supprimées :
    
        ALTER TABLE TRANSMISSION DROP COLUMN TransmissionVitesses, TransmissionType
    

    (2) On crée la vue TRANSMISSION_COMPOSANT_V :

    
    DROP VIEW IF EXISTS TRANSMISSION_COMPOSANT_V ;
    
    GO
    
    CREATE VIEW TRANSMISSION_COMPOSANT_V (SerialNumber, MfgDate, PurchaseDate, SaleDate
                                        , Manufacturer, Model
                                        , TransmissionSpeed
                                        , TransmissionTorque
                                        , TransmissionType)
    AS
    SELECT TransmissionNumeroSerie
         , ComposantDateMfg, ComposantDateAchat, ComposantDateVente
         , ContactName, ComponentModelName
         , TransmissionSpeed
         , TransmissionTorque
         , TransmissionType 
    FROM   COMPOSANT AS x JOIN TRANSMISSION AS y ON x.ComposantId = y.ComposantId 
                          JOIN COMPONENT_MODEL AS z ON x.ComponentManufacturerId = z.ComponentManufacturerId
                                                   AND x.ComponentModelId = z.ComponentModelId
                          JOIN CONTACT AS t ON x.ComponentManufacturerId = t.ContactId
                          JOIN COMPONENT_MODEL_TRANSMISSION AS u ON x.ComponentManufacturerId = u.ComponentManufacturerId
                                                                AND x.ComponentModelId = u.ComponentModelId
    ;
    GO
    

    (3) On crée les triggers attachés à la vue TRANSMISSION_COMPOSANT_V :

    TRANSMISSION_COMPOSANT_INSERT_TR
    TRANSMISSION_COMPOSANT_UPDATE_TR
    TRANSMISSION_COMPOSANT_DELETE_TR


    (4) Un jeu d’essai, avec BEGIN TRANSACTION / ROLLBACK pour ne pas perturber l’existant :

    INSERT INTO TRANSMISSION_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed)
        SELECT 'T76785', '2016-07-01', 'Eaton Fuller', 'RTLO-16913A', 13
    ;
    INSERT INTO TRANSMISSION_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed)
        SELECT 'TRANS01', '2012-07-01', 'Eaton Fuller 1', 'RTLO-16913A-1', 13
    ;
    INSERT INTO TRANSMISSION_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed, TransmissionType)
        SELECT 'TRANS02', '2012-07-22', 'Eaton Minimum 2', 'RTLO-16913B-2', 13, 'AUXILIARY'
    ;
    INSERT INTO TRANSMISSION_COMPOSANT_V
        (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed)
        SELECT 'Trans156', '2018-11-05', 'Leclerc Manufacturier', 'Trans Modèle 1', 16
    ;
    INSERT INTO TRANSMISSION_COMPOSANT_V
        (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed, TransmissionType)
        SELECT 'Trans423', '2018-11-05', 'Leclerc Manufacturier', 'Trans Modèle 2', 16, 'auxiliary'
    ;
    INSERT INTO TRANSMISSION_COMPOSANT_V 
        (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionSpeed)
        SELECT 'Trans423bis', '2012-01-01', 'Brassens Manufacturier', 'Modèle Trans bis', 12
    ;
    
    UPDATE TRANSMISSION_COMPOSANT_V
        SET SerialNumber  = 'TRANS01 ;-)'
          , MfgDate = '2012-01-12'
          , PurchaseDate = '2013-01-13'
          , SaleDate = '2014-01-14'
          , Manufacturer  = 'Brassens Manufacturier', Model = 'Modèle Trans bis'
    WHERE SerialNumber = 'TRANS01'
    ;
    
    (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  0

  6. #966
    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 : 380
    Points
    380
    Par défaut
    Ça fonctionne alors je ne me pose pas trop de questions
    Mais j'ai juste peur qu'on est des Tables ou des Vues corrompues, juste un pressentiment. Il y a eu un glitch mais je ne trouve pas d'où il provient...

    J'espère que tout est correcte.

    Citation Envoyé par fsmrel
    Transmissions, suite.

    (1) Comme elles ont migré vers la table COMPONENT_MODEL_TRANSMISSION, on supprime les colonnes TransmissionVitesses, TransmissionType de la table TRANSMISSION. SQL Server a généré des noms à la noix pour certaines contraintes portant sur ces colonnes : on supprime les contraintes manuellement.
      0  0

  7. #967
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Transmissions, suite.

    (1) Affectation des transmissions aux camions :

    Vue TRANSMISSION_AFFECTATION_CAMION

    ----------------------------------------------------
    -- Affectation des transmissions aux camions
    ----------------------------------------------------
    
      --  BEGIN TRANSACTION ;
    
     DROP VIEW IF EXISTS TRANSMISSION_AFFECTATION_CAMION ;
    
    GO
    CREATE VIEW TRANSMISSION_AFFECTATION_CAMION (CamionVIN, SerialNumber
                                               , InstallationDate, DesInstallationDate)
    AS
        SELECT z.CamionVIN, x.TransmissionNumeroSerie AS NumeroSerie
             , y.ComposantInstallationDate, y.ComposantDesInstallationDate
        FROM   TRANSMISSION AS x 
          JOIN COMPOSANT_AFFECTATION AS y ON x.ComposantId = y.ComposantId
          JOIN CAMION AS z ON y.LocalisationId = z.CamionId
    GO
    
    Les triggers affectés à la vue TRANSMISSION_AFFECTATION_CAMION :

    TRANSMISSION_AFFECTATION_CAMION_INSERT_TR
    TRANSMISSION_AFFECTATION_CAMION_UPDATE_TR
    TRANSMISSION_AFFECTATION_CAMION_DELETE_TR


    (2) Affectation des transmissions aux locaux :

    Vue TRANSMISSION_AFFECTATION_LOCAL

    -----------------------------------------------------------------------------------
    -- Affectation des transmissions aux locaux : Vue TRANSMISSION_AFFECTATION_LOCAL
    -----------------------------------------------------------------------------------
    GO
    CREATE VIEW TRANSMISSION_AFFECTATION_LOCAL (LocalCode, SerialNumber, InstallationDate, DesInstallationDate)
    AS
    SELECT LocalCode, TransmissionNumeroSerie
         , ComposantInstallationDate, ComposantDesInstallationDate
    FROM   TRANSMISSION AS x 
      JOIN COMPOSANT_AFFECTATION AS y ON x.ComposantId = y.ComposantId
      JOIN LOCAL AS z ON y.LocalisationId = z.LocalisationId
    ;
    GO
    
    Les triggers affectés à la vue TRANSMISSION_AFFECTATION_CAMION :

    TRANSMISSION_AFFECTATION_LOCAL_INSERT_TR
    TRANSMISSION_AFFECTATION_LOCAL_UPDATE_TR
    TRANSMISSION_AFFECTATION_LOCAL_DELETE_TR
    (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  0

  8. #968
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Passons à la mise à niveau de la partie traitant des essieux.

    Je rappelle la vue où les essieux sont des composants spécialisés :

    -----------------------------------------------------------------------------
    --  Axles (essieux)  
    ------------------------------------------------------------------------------
    
    CREATE VIEW AXLE_COMPOSANT_V (SerialNumber, MfgDate, PurchaseDate, SaleDate
                                , Manufacturer, Model
                                , AxleType
                                , GAWR, AxleGVWR, AxleTorque)
    AS
    SELECT AxleSerialNumber
         , ComposantDateMfg, ComposantDateAchat, ComposantDateVente
         , ContactName, ComponentModelName
         , AxleType
         , GAWR, AxleGVWR, AxleTorque 
    FROM   COMPOSANT AS x
     JOIN  AXLE AS y ON x.ComposantId = y.ComposantId
     JOIN  COMPONENT_MODEL AS z ON x.ComponentManufacturerId = z.ComponentManufacturerId
                               AND x.ComponentModelId = z.ComponentModelId
     JOIN  CONTACT AS t ON x.ComponentManufacturerId = t.ContactId 
     JOIN  AXLE_TYPE AS u ON y.AxleTypeId = u.AxleTypeId   
    ;
    
    GO
    
    Les triggers associés :

    AXLE_COMPOSANT_INSERT_TR
    AXLE_COMPOSANT_UPDATE_TR
    AXLE_COMPOSANT_DELETE_TR

    La vue pour affecter les essieux aux camions :

    CREATE VIEW AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber
                                       , InstallationDate, DesInstallationDate
                                       , Position)
    AS
    SELECT CamionVIN, AxleSerialNumber
         , ComposantInstallationDate, ComposantDesInstallationDate
         , PositionCode
    FROM   AXLE AS x JOIN COMPOSANT_AFFECTATION AS y ON x.ComposantId = y.ComposantId
                     JOIN CAMION AS z ON y.LocalisationId = z.CamionId
                     JOIN AXLE_POSITION AS t ON  y.PositionId = t.PositionId
    ;
    GO
    

    Les triggers associés :


    AXLE_AFFECTATION_CAMION_INSERT_TR
    AXLE_AFFECTATION_CAMION_UPDATE_TR
    AXLE_AFFECTATION_CAMION_DELETE_TR

    En cours de mise à niveau : les triggers d’affectation des essieux aux locaux.
    (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  0

  9. #969
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    J'ai oublié de fournir un jeu d'essai pour l'affectation des essieux aux camions.

    En voici un, avec BEGIN TRANSATION / ROLLBACK pour ne pas perturber l'existant :


    BEGIN TRANSACTION ; 
    
    ----------------------------------------------------------
    -- Création d'essieux et affectation aux camions
    ----------------------------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, Manufacturer, Model
                                , AxleType, GAWR, PurchaseDate)
        SELECT 'FRONT16156', 'Brassens Manufacturier', 'Axle Model FR16' 
             , 'FRONT', 16000  , '2018-11-16'
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'FRONT16156', 'FRGAWR'  -- provoque doublon + loin
    ;
    --*/
    
    --2----------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, Manufacturer, Model
                                , AxleType, GAWR, PurchaseDate)
        SELECT 'FORWARD23156', 'Brassens Manufacturier', 'Axle Model FWD23' 
             , 'Forward', 23000  , '2018-11-23'
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'FORWARD23156', '1INTGAWR'
    ;
    
    -----------------------------------------------------
    -- Un axle à deux positions à la fois : refuser
    -----------------------------------------------------
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'FORWARD23156', 'FRGAWR'
    ;
    
    ----------------------------------
    -- Correct
    ---------------------------------
    
    --3-----------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'REAR23156', '2018-11-20', 'Brassens Manufacturier', 'Axle Model REAR23' 
             , 'rear', 23000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'REAR23156', 'REARGAWR'
    ;
    
    --4-----------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSHER8156_1', '2018-11-21', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
               , 'pusher', 8000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_1', '2INTGAWR' 
    ;
    
    --5-----------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSHER8156_2', '2018-11-22', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
             , 'pusher', 8000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_2', '3INTGAWR'
    ;
    
    --6----------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSHER8156_3', '2018-11-23', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
             , 'pusher', 8000  
    ;
    --/*
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_3', '4INTGAWR'
    ;
    
    --7---------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSHER8156_4', '2018-11-24', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
             , 'pusher', 8000  
    ;
    --/*
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_4', '5INTGAWR'
    ;
    
    --8--post#426----------------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'FRONT14426', '2018-11-26', 'Brassens Manufacturier', 'Axle Model FR14' 
             , 'FRONT', 14000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#426', 'FRONT14426', 'FRGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT '2NDFORWARD22426', '2018-11-27', 'Brassens Manufacturier', 'Axle Model 2FW22' 
             , 'Forward', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#426', '2NDFORWARD22426', '1INTGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT '3RDFORWARD22426', '2018-11-27', 'Brassens Manufacturier', 'Axle Model 3FW22' 
             , 'Forward', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#426', '3RDFORWARD22426', '2INTGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'REAR22426', '2018-11-28', 'Brassens Manufacturier', 'Axle Model REAR22' 
             , 'REAR', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#426', 'REAR22426', 'REARGAWR'
    ;
    
    ---441---------------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'FRONT14441', '2018-11-14', 'Brassens Manufacturier', 'Axle Model FR14' 
             , 'front', 14000  
    ;
    --/*
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', 'FRONT14441', 'FRGAWR'
    ;
    --*/
    ---------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT '2NDFRONT14441', '2018-12-14', 'Brassens Manufacturier', 'Axle Model 2NDFR14' 
             , '2ndFront', 14000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', '2NDFRONT14441', '6INTGAWR'
    ;
    
    ------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT '2NDFORWARD22441', '2018-11-24', 'Brassens Manufacturier', 'Axle Model 2FW22' 
             , 'Forward', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', '2NDFORWARD22441', '1INTGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'REAR22441', '2018-11-24', 'Brassens Manufacturier', 'Axle Model REAR22' 
             , 'rear', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', 'REAR22441', 'REARGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSH12441_1', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#441')
             , 'Brassens Manufacturier', 'Axle Model PUSH12' 
    	 , 'pusher', 12000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', 'PUSH12441_1', '2INTGAWR'
    ;
    
    -----------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSH12441_2', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#441')
             , 'Brassens Manufacturier', 'Axle Model PUSH12' 
             , 'pusher', 12000  
    ;
    --/*
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#441', 'PUSH12441_2', '3INTGAWR'
    ;
    
    -----423---------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, AxleType, GAWR)
        SELECT 'FRONT14423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423')
             , 'Brassens Manufacturier', 'Axle Model FR14' 
             , 'front', 14000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#423', 'FRONT14423', 'FRGAWR'
    ;
    
    ----------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT '2NDFORWARD22423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423')
             , 'Brassens Manufacturier', 'Axle Model 2FW22' 
             , 'Forward', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#423', '2NDFORWARD22423', '1INTGAWR'
    ;
    
    ------------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'REAR22423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423')
             , 'Brassens Manufacturier', 'Axle Model REAR22' 
             , 'Rear', 22000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#423', 'REAR22423', 'REARGAWR'
    ;
    
    --------------------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'PUSH12423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423')
             , 'Brassens Manufacturier', 'Axle Model PUSH12' 
             , 'pusher', 12000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#423', 'PUSH12423', '2INTGAWR'
    ;
    
    --------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model
                                , AxleType, GAWR)
        SELECT 'TAG12423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423')
             , 'Brassens Manufacturier', 'Axle Model TAG12' 
             , 'tag', 12000  
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#423', 'TAG12423', 'TAG'
    ;
    
    ------------------------------------------------------------------------------------------
    
    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber
            , ContactName as Manufacturer
            , AxleType
            , PositionCode, GAWR
            , ComposantInstallationDate as InstallDate
            , ComposantDesInstallationDate as DesinstallDate
    FROM   COMPOSANT_AFFECTATION AS x 
      JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
      JOIN AXLE AS z on x.ComposantId = z.ComposantId
      JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
      JOIN CAMION AS u on x.LocalisationId = u.CamionId
      JOIN CONTACT as v on v.ContactId = y.ComponentManufacturerId
      JOIN AXLE_TYPE AS w on w.AxleTypeId = z.AxleTypeId
    ORDER BY CamionVIN
        ,CASE PositionCode 
         WHEN 'FRGAWR' THEN 1
         WHEN '1INTGAWR' THEN 2
         WHEN '2INTGAWR' THEN 3
         WHEN '3INTGAWR' THEN 4
         WHEN '4INTGAWR' THEN 5
         WHEN '5INTGAWR' THEN 6
         WHEN '6INTGAWR' THEN 7
         WHEN 'REARGAWR' THEN 8
         WHEN 'TAG' THEN 9
         END
    
    ROLLBACK ;
    
    (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  0

  10. #970
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Pour compléter, un petit jeu d'essai concernant les updates des affectations des essieux :

    BEGIN TRANSACTION
    
    -- Changement de position d'un axle 
    
    /*
    UPDATE AXLE_AFFECTATION_CAMION
        SET Position = '6INTGAWR'
        WHERE CamionVIN = 'post#156' and SerialNumber = 'FORWARD23156'
    */
    
    -----------------------------------------------------------
    -- pour traiter du cas d'un axle affecté légalement plus
    -- d'une fois dans le temps au même camion.
    ----------------------------------------------------------
    
    ---------étape 1 : on désinstalle l'axle à d1 
    
    UPDATE AXLE_AFFECTATION_CAMION           -- correct
    SET DesInstallationDate = '2018-11-23'
    WHERE CamionVIN = 'post#156' AND SerialNumber = 'FRONT16156'
    
    SELECT * FROM AXLE_AFFECTATION_CAMION WHERE CamionVIN = 'post#156'
    
    ------étape 2, on en installe un autre (disponible !) à d1 et désinstallé à d2
    
    UPDATE AXLE_AFFECTATION_CAMION 
    SET Position = '6INTGAWR'   
        , InstallationDate = '2018-11-24'
        , DesInstallationDate = '2018-11-27'
    WHERE CamionVIN = 'post#156' AND SerialNumber = 'FRONT16156' 
      AND DesInstallationDate = '2018-11-23'
    
    SELECT * FROM AXLE_AFFECTATION_CAMION WHERE CamionVIN = 'post#156'
    
    ----étape3 : on réinstalle le 1er axle, à d2 [+ ]
    
    UPDATE AXLE_AFFECTATION_CAMION
      SET Position = 'FRGAWR'
        , InstallationDate = '2018-11-29'
        , DesInstallationDate = '9999-12-31'
    WHERE CamionVIN = 'post#156' AND SerialNumber = 'FRONT16156' 
      AND DesInstallationDate = '2018-11-27'
    
    SELECT * FROM AXLE_AFFECTATION_CAMION WHERE CamionVIN = 'post#156'
    
    ROLLBACK ;
    
    (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  0

  11. #971
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Affectation des essieux aux locaux :

    La vue à cet effet, AXLE_AFFECTATION_LOCAL :

    DROP VIEW IF EXISTS AXLE_AFFECTATION_LOCAL ;
    
    GO
    
    -----------------------------------------------------------------------------------
    -- Affectation des essieux aux locaux : Vue AXLE_AFFECTATION_LOCAL
    -----------------------------------------------------------------------------------
    GO
    CREATE VIEW AXLE_AFFECTATION_LOCAL (LocalCode, SerialNumber, InstallationDate, DesInstallationDate)
    AS
    SELECT LocalCode, AxleSerialNumber, ComposantInstallationDate, ComposantDesInstallationDate
    FROM   AXLE AS x JOIN COMPOSANT_AFFECTATION AS y ON x.ComposantId = y.ComposantId
                       JOIN LOCAL AS z ON y.LocalisationId = z.LocalisationId
    ;
    GO
    
    Les triggers accrochés à la vue :

    AXLE_AFFECTATION_LOCAL_INSERT_TR

    AXLE_AFFECTATION_LOCAL_UPDATE_TR

    AXLE_AFFECTATION_LOCAL_DELETE_TR
    (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  0

  12. #972
    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 : 380
    Points
    380
    Par défaut
    Bonjour fsmrel :-)

    Vous êtes devenu un expert en camions :-)
    Je vais refaire des tests avec les essieux demain. ;-)
      0  0

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


    Actuellement, on peut prendre une vessie pour une lanterne, c’est-à-dire pour modèle de différentiel un modèle de moteur ou de transmission ou d’essieu...
    On peut aussi prendre pour modèle d’essieu un modèle de moteur ou de transmission ou de différentiel...
    On peut aussi prendre pour modèle de moteur un modèle de différentiel ou de transmission ou d’essieu...

    En ce qui concerne les transmissions, grâce à l’existence de la table COMPONENT_MODEL_TRANSMISSION, on sait empêcher ce genre de confusion.

    En conséquence, au fur et à mesure, je mettrai en oeuvre des tables COMPONENT_MODEL_DIFFERENTIAL, COMPONENT_MODEL_AXLE, COMPONENT_MODEL_ENGINE.

    Je commencerai par la table COMPONENT_MODEL_DIFFERENTIAL.

    Actuellement, la table DIFFERENTIAL comporte les colonnes suivantes (je ne considère que les propriétés naturelles, donc pas les clés primaires et étrangères qui du reste ne figurent pas dans la vue DIFFERENTIAL_COMPOSANT_V) :

    DiffSerialNumber

    DiffRatio

    DiffGVWR

    DiffTorque

    DiffLock

    DiffPowerDivideLock

    En fait, les propriétés Ratio, GVWR, Torque, Lock, PowerDividerLock sont normalement des propriétés du modèle de différentiel : autant les dégager de la table DIFFERENTIAL et les installer dans la table COMPONENT_MODEL_DIFFERENTIAL.

    D’où l’évolution du diagramme :


    Je ne vais effectuer maintenant cette migration de colonnes, car vous avez peut-être des contre-indications, et puis il faut avancer sur la mise à niveau du reste...
    (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  0

  14. #974
    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 : 380
    Points
    380
    Par défaut
    En fait, Ratio, GVWR, Torque, Lock, PowerDividerLock ne sont pas des propriétés uniques à un modèle de différentiel mais des propriétés (valeurs ajoutées ou fonctionnalités ajoutées) de n'importe quel modèle de différentiel. Ce qui veut dire qu'un même modèle de différentiel peu disons être Full Lock ou non. Pour différencier deux différentiels de modèle identique qui un serait ''non full lock'' et l'autre ''full lock'', il n'y a qu'un seul caractère qui change dans le numéro d'identification. Ça ne changera probablement rien dans la conception de la base de données mais il y a une différence dans la façon de le dire…

    Numéro d'identification d'un différentiel Dyna Spicer de Eaton

    Pièce jointe 458472


    Citation Envoyé par fsmrel
    En fait, les propriétés Ratio, GVWR, Torque, Lock, PowerDividerLock sont normalement des propriétés du modèle de différentiel





    Citation Envoyé par fsmrel Voir le message
    Hello Ordigil,


    Actuellement, on peut prendre une vessie pour une lanterne, c’est-à-dire pour modèle de différentiel un modèle de moteur ou de transmission ou d’essieu...
    On peut aussi prendre pour modèle d’essieu un modèle de moteur ou de transmission ou de différentiel...
    On peut aussi prendre pour modèle de moteur un modèle de différentiel ou de transmission ou d’essieu...

    En ce qui concerne les transmissions, grâce à l’existence de la table COMPONENT_MODEL_TRANSMISSION, on sait empêcher ce genre de confusion.

    En conséquence, au fur et à mesure, je mettrai en oeuvre des tables COMPONENT_MODEL_DIFFERENTIAL, COMPONENT_MODEL_AXLE, COMPONENT_MODEL_ENGINE.

    Je commencerai par la table COMPONENT_MODEL_DIFFERENTIAL.

    Actuellement, la table DIFFERENTIAL comporte les colonnes suivantes (je ne considère que les propriétés naturelles, donc pas les clés primaires et étrangères qui du reste ne figurent pas dans la vue DIFFERENTIAL_COMPOSANT_V) :

    DiffSerialNumber

    DiffRatio

    DiffGVWR

    DiffTorque

    DiffLock

    DiffPowerDivideLock

    En fait, les propriétés Ratio, GVWR, Torque, Lock, PowerDividerLock sont normalement des propriétés du modèle de différentiel : autant les dégager de la table DIFFERENTIAL et les installer dans la table COMPONENT_MODEL_DIFFERENTIAL.

    D’où l’évolution du diagramme :


    Je ne vais effectuer maintenant cette migration de colonnes, car vous avez peut-être des contre-indications, et puis il faut avancer sur la mise à niveau du reste...
      0  0

  15. #975
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil
    En fait, Ratio, GVWR, Torque, Lock, PowerDividerLock ne sont pas des propriétés uniques à un modèle de différentiel mais des propriétés (valeurs ajoutées ou fonctionnalités ajoutées) de n'importe quel modèle de différentiel. Ce qui veut dire qu'un même modèle de différentiel peu disons être Full Lock ou non. Pour différencier deux différentiels de modèle identique qui un serait ''non full lock'' et l'autre ''full lock'', il n'y a qu'un seul caractère qui change dans le numéro d'identification.
    D‘accord. Je propose donc que Ratio, GVWR, Torque, Lock, PowerDividerLock, fassent l’objet non seulement de colonnes de la table COMPONENT_MODEL_DIFFERENTIAL, mais aussi de colonnes de la table DIFFERENTIAL. Lors de la création d’un différentiel, on proposerait à l’utilisateur les valeurs « par défaut », présentes dans COMPONENT_MODEL_DIFFERENTIAL, en lui laissant la possibilité de les remplacer avant stockage dans DIFFERENTIAL.

    Votre avis ?

    Le diagramme deviendrait :

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

  16. #976
    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 : 380
    Points
    380
    Par défaut
    PowerDividerLock ne concerne que les Front Differentials pas les REAR



    Citation Envoyé par fsmrel Voir le message
    D‘accord. Je propose donc que Ratio, GVWR, Torque, Lock, PowerDividerLock, fassent l’objet non seulement de colonnes de la table COMPONENT_MODEL_DIFFERENTIAL, mais aussi de colonnes de la table DIFFERENTIAL. Lors de la création d’un différentiel, on proposerait à l’utilisateur les valeurs « par défaut », présentes dans COMPONENT_MODEL_DIFFERENTIAL, en lui laissant la possibilité de les remplacer avant stockage dans DIFFERENTIAL.

    Votre avis ?

    Le diagramme deviendrait :

      0  0

  17. #977
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par ordigil
    PowerDividerLock ne concerne que les Front Differentials pas les REAR
    Muy bien, on veillera avec les triggers DIFFERENTIAL_COMPOSANT_INSERT_TR et DIFFERENTIAL_COMPOSANT_UPDATE_TR que dans le cas des REAR, la colonne PowerDividerLock de la table DIFFERENTIAL ne prenne jamais la valeur 'Y', même principe pour la table COMPONENT_MODEL_DIFFERENTIAL. Au besoin, on pourra afficher '0' ou '-', etc. pour les REAR.
    (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  0

  18. #978
    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 : 380
    Points
    380
    Par défaut


    Vous avez tellement de patience



    Désolé si j'ai interrompu SQL Server. J'ai dû redémarrer le serveur. Je donne moins de ressources à SQL Server car il n'en a pas besoin, il va avoir seulement 1 ou 2 utilisateurs.... Je dois partager les ressources avec IIS 10.



    Citation Envoyé par fsmrel Voir le message
    Muy bien, on veillera avec les triggers DIFFERENTIAL_COMPOSANT_INSERT_TR et DIFFERENTIAL_COMPOSANT_UPDATE_TR que dans le cas des REAR, la colonne PowerDividerLock de la table DIFFERENTIAL ne prenne jamais la valeur 'Y', même principe pour la table COMPONENT_MODEL_DIFFERENTIAL. Au besoin, on pourra afficher '0' ou '-', etc. pour les REAR.
      0  0

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

    Les triggers ont été aménagés, merci de les secouer...
    Voici la liste des tables et des vues, des triggers, avec leurs dates de création (aux tables près).
    Si vous avez besoin de jeux d’essai, dites-le moi, j’en ai quelques uns.

    Séquence des opérations
    			
    Contacts			
    	CREATE TABLE CONTACT		2019_03_14	
    Sièges			
    	CREATE TABLE HEADQUARTERS	2019_03_15	
    	CREATE VIEW HEADQUARTERS_V	2019_03_15	
    	CREATE HEADQUARTERS_INSERT_TR	2019_03_15	
    	CREATE HEADQUARTERS_UPDATE_TR	pas fait	
    	CREATE SHEADQUARTERS_DELETE_TR	pas fait	
    			
    Manufacturiers			
    	CREATE TABLE MANUFACTURER	2019_03_15	
    	CREATE VIEW MANUFACTURER_V	2019_03_15	
    	CREATE MANUFACTURER_INSERT_TR	2019_03_15	
    	CREATE MANUFACTURER_UPDATE_TR	pas fait	
    	CREATE MANUFACTURER_DELETE_TR	pas fait	
    			
    Modèles de camions			
    	CREATE TABLE TRUCK_MODEL	2019_03_15	
    	CREATE VIEW TRUCK_MODEL_V	2019_03_15	
    	CREATE TRUCK_MODEL_INSERT_TR	2019_03_15	
    	CREATE TRUCK_MODEL_UPDATE_TR	pas fait	
    	CREATE TRUCK_MODEL_DELETE_TR	pas fait	
    			
    Modèles de composants			
    	CREATE TABLE COMPONENT_MODEL		
    	CREATE VIEW COMPONENT_MODEL_V	                        2019_03_15	
    	CREATE TRIGGER COMPONENT_MODEL_INSERT_TR		2019_03_15	
    	CREATE TRIGGER COMPONENT_MODEL_UPDATE_TR (sans objet !)	    /	
    	CREATE TRIGGER COMPONENT_MODEL_DELETE_TR		2019_03_15	
    			
    			
    Modèles de composants : transmissions			
    	CREATE TABLE COMPONENT_MODEL_TRANSMISSION		2019_03_15	
    	CREATE VIEW COMPONENT_MODEL_TRANSMISSION_V		2019_03_15	
    	CREATE TRIGGER COMPONENT_MODEL_TRANSMISSION_INSERT_TR	2019_03_15	
    	CREATE TRIGGER COMPONENT_MODEL_TRANSMISSION_UPDATE_TR	2019_03_15	
    	CREATE TRIGGER COMPONENT_MODEL_TRANSMISSION_DELETE_TR	2019_03_15	
    			
    			
    Garages, ateliers, locaux			
    	CREATE TABLE SHOP			2019_03_15	
    	CREATE VIEW SHOP_V			2019_03_15	
    	CREATE TRIGGER SHOP_INSERT_TR		2019_03_15	
    	CREATE TRIGGER SHOP_UPDATE_TR		pas fait	
    	CREATE TRIGGER SHOP_DELETE_TR		pas fait	
    			
    Localisations (locaux, camions)			
    	CREATE TABLE LOCALISATION		
    Locaux			
    	CREATE TABLE LOCAL		
    	CREATE VIEW LOCAL_LOCALISATION_V		2019_03_15	
    	CREATE TRIGGER LOCAL_LOCALISATION_INSERT_TR	2019_03_15	
    	CREATE TRIGGER LOCAL_LOCALISATION_UPDATE_TR	pas fait	
    	CREATE TRIGGER LOCAL_LOCALISATION_DELETE_TR	pas fait	
    			
    Camions			
    	CREATE TABLE CAMION			
    	CREATE VIEW CAMION_LOCALISATION_V		2019_03_15	
    	CREATE TRIGGER CAMION_LOCALISATION_INSERT_TR	2019_03_15	
    	CREATE TRIGGER CAMION_LOCALISATION_UPDATE_TR	2019_03_15	
    	CREATE TRIGGER CAMION_LOCALISATION_DELETE_TR	2019_03_15	
    
    Composants	
    	CREATE TABLE COMPOSANT		
    
    Affectation des composants			
    	CREATE TABLE COMPOSANT_AFFECTATION		
    	CREATE FUNCTION NOM_COMPOSANT_A_PARTIR_DE_SON_ID_FN	2019_03_15	
    	CREATE PROCEDURE BILOCATION_CONTROLE_PROC		2019_03_20	appel par COMPOSANT_RECOUVREMENT_TR et COMPOSANT_RECOUVREMENT_UPDATE_TR	
    	CREATE PROCEDURE MAX_COMPOSANTS_PAR_CAMION_PROC		2019_03_15	appel par COMPOSANT_RECOUVREMENT_TR
    			
    	Triggers sur la table COMPOSANT_AFFECTATION :		
    	    CREATE TRIGGER COMPOSANT_RECOUVREMENT_TR		2019_03_20	
    	    CREATE TRIGGER COMPOSANT_RECOUVREMENT_UPDATE_TR	2019_03_15	
    Types d'essieux			
    	CREATE TABLE AXLE_TYPE					2019_03_15	
    			
    Position des essieux sur les camions			
    	CREATE TABLE AXLE_POSITION		
    			
    Moteurs			
    	CREATE TABLE MOTEUR		
    	CREATE VIEW MOTEUR_COMPOSANT_V	2019_03_15	
    	CREATE TRIGGER MOTEUR_COMPOSANT_INSERT_TR		2019_03_15	
    	CREATE TRIGGER MOTEUR_COMPOSANT_UPDATE_TR		2019_03_15	
    	CREATE TRIGGER MOTEUR_COMPOSANT_DELETE_TR		2019_03_15	
    			
    			
    Affectation des moteurs aux camions			
    	CREATE VIEW MOTEUR_AFFECTATION_CAMION	2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_CAMION_INSERT_TR	2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_CAMION_UPDATE_TR	2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_CAMION_DELETE_TR	2019_03_15	
    			
    			
    Affectation des moteurs aux locaux			
    	CREATE VIEW MOTEUR_AFFECTATION_LOCAL			2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_LOCAL_INSERT		2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_LOCAL_UPDATE		2019_03_15	
    	CREATE TRIGGER MOTEUR_AFFECTATION_LOCAL_DELETE		2019_03_15	
    								
    Transmissions			
    	CREATE TABLE TRANSMISSION					2019_03_15	
    	CREATE VIEW TRANSMISSION_COMPOSANT_V				2019_03_15	
    	CREATE TRIGGER TRANSMISSION_COMPOSANT_INSERT_TR			2019_03_15	
    	CREATE TRIGGER TRANSMISSION_COMPOSANT_UPDATE_TR			2019_03_15	
    	CREATE TRIGGER TRANSMISSION_COMPOSANT_DELETE_TR			2019_03_15	
    			
    			
    Affectation des transmissions aux camions			
    	CREATE VIEW TRANSMISSION_AFFECTATION_CAMION			2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_CAMION_INSERT_TR	2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_CAMION_UPDATE_TR	2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_CAMION_DELETE_TR	2019_03_15	
    			
    			
    Affectation des transmissions aux locaux			
    	CREATE VIEW TRANSMISSION_AFFECTATION_LOCAL			2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_LOCAL_INSERT_TR		2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_LOCAL_UPDATE_TR		2019_03_15	
    	CREATE TRIGGER TRANSMISSION_AFFECTATION_LOCAL_DELETE_TR		2019_03_15	
    			
    			
    			
    Affectations successives des transmissions aux camions & locaux			
    bilocation des transmissions  (camions, locaux)			
    			
    Essieux			
    	CREATE TABLE AXLE					2019_03_16	
    	CREATE VIEW AXLE_COMPOSANT_V				2019_03_16	
    	CREATE TRIGGER AXLE_COMPOSANT_INSERT_TR			2019_03_16	
    	CREATE TRIGGER AXLE_COMPOSANT_UPDATE_TR			2019_03_16	
    	CREATE TRIGGER AXLE_COMPOSANT_DELETE_TR			2019_03_16	
    			
    			
    Affectation des essieux aux camions			
    	CREATE VIEW AXLE_AFFECTATION_CAMION			2019_03_16	
    	CREATE TRIGGER AXLE_AFFECTATION_CAMION_INSERT_TR	2019_03_16	
    	CREATE TRIGGER AXLE_AFFECTATION_CAMION_UPDATE_TR	2019_03_16	
    	CREATE TRIGGER AXLE_AFFECTATION_CAMION_DELETE_TR	2019_03_16	
    			
    			
    Affectation des essieux aux locaux			
    	CREATE VIEW AXLE_AFFECTATION_LOCAL			2019_03_07	
    	CREATE TRIGGER AXLE_AFFECTATION_LOCAL_INSERT_TR		2019_03_16	
    	CREATE TRIGGER AXLE_AFFECTATION_LOCAL_UPDATE_TR		2019_03_16	
    	CREATE TRIGGER AXLE_AFFECTATION_LOCAL_DELETE_TR		2019_03_16	
    			
    			
    			
    	CREATE VIEW COMPOSANT_AFFECTATION_CAMION_V		2019_03_16	Ne créer qu'après création des vues ci-dessous :
    			    							MOTEUR_AFFECTATION_CAMION UNION TRANSMISSION_AFFECTATION_CAMION UNION AXLE_AFFECTATION_CAMION			
    					
    Types de différentiels			
    	CREATE TABLE DIFFERENTIAL_TYPE			2019_03_15	
    	CREATE VIEW DIFFERENTIAL_TYPE_V			2019_03_16	
    	CREATE TRIGGER DIFFERENTIAL_TYPE_INSERT_TR	2019_03_16	
    	CREATE TRIGGER DIFFERENTIAL_TYPE_DELETE_TR	2019_03_16	
    			
    Différentiels			
    	CREATE DIFF_BILOCATION_CONTROLE_PROC			2019_03_21	
    			
    	CREATE TABLE DIFFERENTIAL				2019_03_15	
    	CREATE VIEW DIFFERENTIAL_COMPOSANT_V			2019_03_15	
    	CREATE TRIGGER DIFFERENTIAL_COMPOSANT_INSERT_TR		2019_03_15	
    	CREATE TRIGGER DIFFERENTIAL_COMPOSANT_UPDATE_TR		2019_03_15	
    	CREATE TRIGGER DIFFERENTIAL_COMPOSANT_DELETE_TR		2019_03_15	
    			
    			
    Affectation des différentiels aux essieux			
    	CREATE TABLE DIFF_AXLE		
    	CREATE VIEW DIFF_AFFECTATION_AXLE_V			2019_03_15	
    	CREATE TRIGGER DIFF_AFFECTATION_AXLE_INSERT_TR		2019_03_20	Affiner pour les ratios (tenir compte des périodes !)
    	CREATE TRIGGER DIFF_AFFECTATION_AXLE_UPDATE_TR		pas terminé	
    	CREATE TRIGGER DIFF_AFFECTATION_AXLE_DELETE_TR		2019_03_20	
    Affectation des différentiels aux locaux			
    	CREATE VIEW DIFF_AFFECTATION_LOCAL			2019_03_20	
    	CREATE TRIGGER DIFF_AFFECTATION_LOCAL_INSERT_TR		2019_03_21	
    	CREATE TRIGGER DIFF_AFFECTATION_LOCAL_UPDATE_TR		pas terminé	
    	CREATE TRIGGER DIFF_AFFECTATION_LOCAL_DELETE_TR		2019_03_21	
    			
    Camions : kilométrage			
    	CREATE TABLE CAMION_MILLEAGE		
    Référentiel des huiles			
    	CREATE TABLE OIL_SPEC		
    			
    	CREATE TABLE COMPONENT_OIL		
    			
    	CREATE TABLE OIL_CHANGE		
    Consommations de carburant			
    	CREATE TABLE FUEL_CONSUMPTION		
    achats, ventes			
    	CREATE TABLE TRUCK_PURCHASE		
    			
    	CREATE TABLE TRUCK_SALE 		
    			
    	CREATE TABLE COMPONENT_SALE		
    			
    	CREATE TABLE COMPONENT_PURCHASE		
    Pièces			
    	CREATE TABLE PART		
    			
    	CREATE TABLE PART_ALIAS		
    			
    	CREATE TABLE PART_SUPPLIER		
    			
    	CREATE TABLE PURCHASE		
    			
    	CREATE TABLE MAINTENANCE_REPAIR_CATEGORY		
    			
    	CREATE TABLE PART_CATEGORY		
    			
    	CREATE TABLE MAINTENANCE_REPAIR		
    			
    	CREATE TABLE M_R_PART		
    			
    	CREATE TABLE M_R_NO_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.
      3  0

  20. #980
    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 : 380
    Points
    380
    Par défaut
    Bonjour fsmrel ;-)

    Wowwww vous avez fait un travail énorme

    Pensez-vous que l'on devrait ajouter une colonne du genre 'CategorieContact' dans la Table Contact ??? Pour différencier les Clients, les Shops, les Headquarters, les Manufacturiers, les Fournisseurs, etc....
      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, 16h32
  2. Création table et relations
    Par ptitdragon_eric dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/09/2005, 14h37
  3. table de relation
    Par tanjonaravelson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/06/2005, 19h20
  4. Table de relation et sélection via jointure
    Par 73672 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 09/11/2004, 10h33
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 16h16

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