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. #901
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,

    J’ai fait quelques tests concernant les manufacturiers et j’en ai tiré quelques enseignements. Dans le post #885, j’ai proposé une version dépliée du modèles relatifs aux manufacturiers et aux modèles (diagramme D1) ainsi qu’une version repliée (diagramme D2). Suite aux tests, il est préférable d’en passer par une version dans laquelle les modèles sont dépliés (un modèle de camion n’est pas un modèle de composant, principe d’exclusion mutuelle), mais où les manufacturiers sont repliés, puisqu’un manufacturier peut vendre à la fois des camions et des composants. La sémantique est sauve et on simplifie la programmation des triggers. Le diagramme ci-dessous résume la situation.


    Diagramme D4




    Les vues concernant les manufacturiers et les modèles deviennent les suivantes :

     ----------------------------------------------------------
     -- Les manufacturiers des camions et des composants
     ----------------------------------------------------------
    
    CREATE VIEW MANUFACTURER_V 
    (
       HeadQuartersName, ContactName, CivicNumber, StreetName, City, Province, PostalCode
     , PhoneNumber, WattLine, FaxNumber, CellNumber, WebSite, FirstContactName
    )
    AS
     SELECT t.ContactName, x.ContactName, x.CivicNumber, x.StreetName, x.City, x.Province, x.PostalCode
          , x.PhoneNumber, x.WattLine, x.FaxNumber, x.CellNumber, x.WebSite, x.FirstContactName  
     FROM   CONTACT AS x JOIN MANUFACTURER AS y ON x.ContactId  = y.ManufacturerId
                         JOIN HEADQUARTERS as z ON z.HeadquartersId = y.HeadquartersId
                         JOIN  CONTACT AS t ON t.ContactId = z.HeadquartersId 
     ;

     ----------------------------------------------------------
     -- Les modèles de camions des manufacturiers
     ----------------------------------------------------------
    
    CREATE VIEW TRUCK_MODEL_V (ManufacturerName, ModelName)
    AS
     SELECT ContactName, TruckModelName
     FROM   TRUCK_MODEL AS x JOIN MANUFACTURER AS y ON x.TruckManufacturerId  = y.ManufacturerId
                             JOIN CONTACT as z ON z.ContactId = y.ManufacturerId
     ;
    

     ----------------------------------------------------------
     -- Les modèles de composants des manufacturiers
     ----------------------------------------------------------
    
    CREATE VIEW COMPONENT_MODEL_V (ManufacturerName, ModelName)
    AS
     SELECT ContactName, ComponentModelName
     FROM   COMPONENT_MODEL AS x JOIN MANUFACTURER AS y ON x.ComponentManufacturerId  = y.ManufacturerId
                             JOIN CONTACT as z ON z.ContactId = y.ManufacturerId
     ;
    
    Les triggers correspondant aux vues sont prêts. J’attends d’avoir accès à DZINDZIO_TRUCKS_MANAGEMENT_TEMP.

    Je vais passer aux camions et aux composants.
    (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

  2. #902
    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

    Et je préfère ce model, il porte aussi moins à la confusion pour de futur expansions, on ne sait jamais hahaha

    Le routeur était planté et ici c'était la tempête alors j'en ai profité pour démonter le Laptop Toshiba, le nettoyer et réglé le problème de surchauffe du CPU. Il devrait être beaucoup plus stable maintenant. SQL Server devrait redémarrer demain. Là je suis très occupé avec le déneigement et mon boss est tombé dans le fossé avec le tracteur. Petite misère pour le sortir de là. Et comble de malheur, les pièces pour réparer la transmission du loader coûtent environ 15 000$ juste pour le torque. On ne le réparera probablement pas. Je suis gelé, une tempête avec des rafales de 60-70 Km/h et une température de -20, il faut remonter en 1925 pour un tel événement.


    Citation Envoyé par fsmrel
    Les triggers correspondant aux vues sont prêts. J’attends d’avoir accès à DZINDZIO_TRUCKS_MANAGEMENT_TEMP.

    Je vais passer aux camions et aux composants.
      0  0

  3. #903
    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. Essayez de vous brancher et dites moi en privé si vous avec des problèmes de branchement. Je dois retourner au travail pour l'instant.
    En fait SQL Server sur Linux n'est pas idéal car il refuse de s'installer si openssl est > que 1.1.0. The following packages have unmet dependencies: mssql-server : Depends: openSSL (<= 1.1.0). Et Microsoft ne semble pas intéressé à remédier à ce problème. Même problème avec SQL Server 2019.... J'ai installé SQL Server 2017 mais en cassant les dépendances, ce qui n'est pas très cohérent. Et downgradé openSSL n'est pas très cohérent n'ont plus
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    J’ai mis à niveau DZINDZIO_TRUCKS_MANAGEMENT_TEMP :

    Exécution des CREATE TABLE.

    Création des vues :

    HEADQUARTERS_V
    MANUFACTURER_V
    TRUCK_MODEL_V
    COMPONENT_MODEL_V
    SHOP_V
    LOCAL_LOCALISATION_V
    CAMION_LOCALISATION_V

    Création des triggers pour INSERT dans ces vues :

    HEADQUARTERS_INSERT_TR
    MANUFACTURER_INSERT_TR
    TRUCK_MODEL_INSERT_TR
    COMPONENT_MODEL_INSERT_TR
    SHOP_INSERT_TR
    LOCAL_LOCALISATION_INSERT_TR
    CAMION_LOCALISATION_INSERT_TR

    Exécution des INSERT dans ces vues.

    Je n’ai pas supprimé les anciennes vues, je les mettrai à niveau au fur et à mesure.

    Je vais attaquer la partie COMPOSANTS.

    J’ai plein de neige dans mon jardin : seraient-ce les vents d’Ouest qui auraient exporté des flocons canadiens ?
    (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. #905
    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,

    Wowwww vous avancez à la vitesse grand V.
    Donc je peux remplir les Tables maintenant ?

    Citation Envoyé par fsmrel Voir le message
    Bonsoir Ordigil,


    J’ai mis à niveau DZINDZIO_TRUCKS_MANAGEMENT_TEMP :

    Exécution des CREATE TABLE.

    Création des vues :

    HEADQUARTERS_V
    MANUFACTURER_V
    TRUCK_MODEL_V
    COMPONENT_MODEL_V
    SHOP_V
    LOCAL_LOCALISATION_V
    CAMION_LOCALISATION_V

    Création des triggers pour INSERT dans ces vues :

    HEADQUARTERS_INSERT_TR
    MANUFACTURER_INSERT_TR
    TRUCK_MODEL_INSERT_TR
    COMPONENT_MODEL_INSERT_TR
    SHOP_INSERT_TR
    LOCAL_LOCALISATION_INSERT_TR
    CAMION_LOCALISATION_INSERT_TR

    Exécution des INSERT dans ces vues.

    Je n’ai pas supprimé les anciennes vues, je les mettrai à niveau au fur et à mesure.

    Je vais attaquer la partie COMPOSANTS.

    J’ai plein de neige dans mon jardin : seraient-ce les vents d’Ouest qui auraient exporté des flocons canadiens ?
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Vous pouvez commencer à remplir les tables.
    J’ai oublié de fournir un petit mode d’emploi pour engranger les données.

    Pour créer des headquarters (je fournis un minimum d’informations, de mon côté les valeurs par défaut me suffisent) :

    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Daimler')
    ;
    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Navistar')
    
    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Paccar')
    

    Un échantillon de manufacturiers :

    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Anhui', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('MWM', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Blue Diamond', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('NC2', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Peterbilt', 'Paccar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Kenworth', 'Paccar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('DAF', 'Paccar')
    

    Un échantillon de modèles de camions :

    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Kenworth', 'W900L'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Kenworth', 'T800W'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Cascadia'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Columbia'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Coronado'
    

    Un échantillon de shops :

    INSERT INTO SHOP_V (ContactName, City, OwnerLastName, OwnerFirstName)
        SELECT  'Dzindzio Shop', 'Boucherville', 'Volfoni', 'Raoul'
    
    INSERT INTO SHOP_V (ContactName, OwnerLastName, OwnerFirstName)
        SELECT  'Dzindzio Shop',  'Vigneault', 'Gilles'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'Atelier Ordigil Shop'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'GloboCam Boucherville Shop'
    
    INSERT INTO SHOP_V (ContactName, OwnerLastName)
        SELECT  'Le Capitaine Shop', 'Escartefigue'
    
    INSERT INTO SHOP_V (ContactName, OwnerFirstName)
        SELECT  'Entreprise fsmrel Shop', 'François'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'Ets Oishiiii Shop'
    

    Un échantillon de locaux :

    INSERT INTO LOCAL_LOCALISATION_V (LocalCode, LocalNom, Note) 
        SELECT 'loc01', 'Local du fond', 'l01' ;
    
    INSERT INTO LOCAL_LOCALISATION_V (LocalCode, LocalNom, Note) 
        SELECT 'loc02', 'Local derrière le garage', 'l02' ;
    

    Un échantillon de camions :

    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateMfg, Manufacturer, Model, WheelBase, Immat, USDOT, ICCMC)
        SELECT '1FUJGLDR2ALAR5747', '2539', '2011-09-01', 'Freightliner', 'Cascadia', 236, 'PTS385NB', '019176', '134272'
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateMfg, Manufacturer, Model, WheelBase, GVWR)
        SELECT '1FUJGLD68GLGT6928', '2540', '2015-04-02', 'Freightliner', 'Cascadia', 235, 53220
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateAchat, Manufacturer, Model)
        SELECT '1FUJGLDR2ALAR5712', '2552', '2017-01-01', 'Kenworth', 'W900L'
    ;
    
    La suite au prochain numéro...
    (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

  7. #907
    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
    Wowwwww ça fait 'PRO'
    Ce n'est plus un jouet pour les enfants
    hmmmmmm Vous avez appris les marques de camions avec leur manufacturiers et leurs modèles par coeur ? Naaaaaaaaaaaaaa vous avez triché hahahaha
    Vous me faites sourire avec vos 'inserts' toujours accompagnés d'une touche d'humour.
    Bon je vais essayer de trouver des erreurs dans les triggers


    Citation Envoyé par fsmrel Voir le message
    Vous pouvez commencer à remplir les tables.
    J’ai oublié de fournir un petit mode d’emploi pour engranger les données.

    Pour créer des headquarters (je fournis un minimum d’informations, de mon côté les valeurs par défaut me suffisent) :

    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Daimler')
    ;
    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Navistar')
    
    INSERT INTO HEADQUARTERS_V (ContactName)
        VALUES ('Paccar')
    

    Un échantillon de manufacturiers :

    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Anhui', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('MWM', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Blue Diamond', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('NC2', 'Navistar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Peterbilt', 'Paccar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('Kenworth', 'Paccar')
    ;
    INSERT INTO MANUFACTURER_V (ContactName, HeadQuartersName)
        VALUES ('DAF', 'Paccar')
    

    Un échantillon de modèles de camions :

    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Kenworth', 'W900L'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Kenworth', 'T800W'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Cascadia'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Columbia'
    
    INSERT INTO TRUCK_MODEL_V (ManufacturerName, ModelName)
     SELECT  'Freightliner', 'Coronado'
    

    Un échantillon de shops :

    INSERT INTO SHOP_V (ContactName, City, OwnerLastName, OwnerFirstName)
        SELECT  'Dzindzio Shop', 'Boucherville', 'Volfoni', 'Raoul'
    
    INSERT INTO SHOP_V (ContactName, OwnerLastName, OwnerFirstName)
        SELECT  'Dzindzio Shop',  'Vigneault', 'Gilles'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'Atelier Ordigil Shop'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'GloboCam Boucherville Shop'
    
    INSERT INTO SHOP_V (ContactName, OwnerLastName)
        SELECT  'Le Capitaine Shop', 'Escartefigue'
    
    INSERT INTO SHOP_V (ContactName, OwnerFirstName)
        SELECT  'Entreprise fsmrel Shop', 'François'
    
    INSERT INTO SHOP_V (ContactName)
        SELECT  'Ets Oishiiii Shop'
    

    Un échantillon de locaux :

    INSERT INTO LOCAL_LOCALISATION_V (LocalCode, LocalNom, Note) 
        SELECT 'loc01', 'Local du fond', 'l01' ;
    
    INSERT INTO LOCAL_LOCALISATION_V (LocalCode, LocalNom, Note) 
        SELECT 'loc02', 'Local derrière le garage', 'l02' ;
    

    Un échantillon de camions :

    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateMfg, Manufacturer, Model, WheelBase, Immat, USDOT, ICCMC)
        SELECT '1FUJGLDR2ALAR5747', '2539', '2011-09-01', 'Freightliner', 'Cascadia', 236, 'PTS385NB', '019176', '134272'
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateMfg, Manufacturer, Model, WheelBase, GVWR)
        SELECT '1FUJGLD68GLGT6928', '2540', '2015-04-02', 'Freightliner', 'Cascadia', 235, 53220
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Number, DateAchat, Manufacturer, Model)
        SELECT '1FUJGLDR2ALAR5712', '2552', '2017-01-01', 'Kenworth', 'W900L'
    ;
    
    La suite au prochain numéro...
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    J’ai poursuivi la mise à niveau de DZINDZIO_TRUCKS_MANAGEMENT_TEMP :

    Insert de modèles de composants (moteurs, transmissions, essieux, différentiels)

    Création de la vue MOTEUR_COMPOSANT_V

    Création des triggers MOTEUR_COMPOSANT_INSERT_TR et MOTEUR_COMPOSANT_DELETE_TR

    Insert de moteurs via la vue.
    (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

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,

    Suite de la mise à niveau de DZINDZIO_TRUCKS_MANAGEMENT_TEMP :

    Création de la vue TRANSMISSION_COMPOSANT_V

    Création des triggers TRANSMISSION_COMPOSANT_INSERT_TR et TRANSMISSION_COMPOSANT_DELETE_TR

    Insert de transmissions via la vue.

    A cette occasion je signale que la vue TRANSMISSION_COMPOSANT_V a une colonne supplémentaire, TransmissionType, afin qu’on puisse préciser si une transmission est primaire ou auxiliaire :

    CREATE VIEW TRANSMISSION_COMPOSANT_V (SerialNumber, MfgDate, PurchaseDate, SaleDate
                                        , Manufacturer, Model
                                        , TransmissionVitesses
                                        , TransmissionType)
    AS
    SELECT TransmissionNumeroSerie
         , ComposantDateMfg, ComposantDateAchat, ComposantDateVente
         , ContactName, ComponentModelName
         , TransmissionVitesses
         , 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   
    ;
    
    Exemple :

    --------------------------------------
    -- Transmission primaire 
    --------------------------------------
    INSERT INTO TRANSMISSION_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionVitesses)
        SELECT 'T76785', '2016-07-01', 'Eaton Fuller', 'RTLO-16913A', 13
    ;
    --------------------------------------
    -- Transmission auxiliaire 
    --------------------------------------
    INSERT INTO TRANSMISSION_COMPOSANT_V
        (SerialNumber, PurchaseDate, Manufacturer, Model, TransmissionVitesses, TransmissionType)
        SELECT 'Trans423', '2018-11-05', 'Leclerc Manufacturier', 'Trans Modèle 2', 16, 'Auxiliary'
    ;
    
    Je rappelle que selon le CREATE TABLE TRANSMISSION, la colonne TransmissionType a la valeur par défaut 'Primary'.
    (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

  10. #910
    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 ;-)

    Super efficace, il n'y a pas à dire, vous être un maître
    Je suis impressionné
    Et pour une même requête, on doit interroger plus de tables mais j'obtiens plus rapidement la réponse maintenant. Avez-vous remarquer une amélioration de la rapidité lors des requêtes ? Ici internet n'est pas très rapide, assez lent même, mais sur le serveur c'est beaucoup plus rapide.


    Citation Envoyé par fsmrel Voir le message
    Bonsoir Ordigil,


    J’ai poursuivi la mise à niveau de DZINDZIO_TRUCKS_MANAGEMENT_TEMP :

    Insert de modèles de composants (moteurs, transmissions, essieux, différentiels)

    Création de la vue MOTEUR_COMPOSANT_V

    Création des triggers MOTEUR_COMPOSANT_INSERT_TR et MOTEUR_COMPOSANT_DELETE_TR

    Insert de moteurs via la vue.
      1  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    Plus de tables à consulter et performance accrue ? Beau paradoxe n’est-il pas ? Depuis des décennies, ceux qui ne mettent pas les mains dans le cambouis prétendent le contraire…


    Suite de la mise à niveau de DZINDZIO_TRUCKS_MANAGEMENT_TEMP : les essieux.

    – Chargement de la table AXLE_TYPE :

    SET IDENTITY_INSERT AXLE_TYPE OFF ;
    DBCC CHECKIDENT (AXLE_TYPE, RESEED, 0) ;
    
    INSERT INTO AXLE_TYPE (AxleType, AxleDifferentialDesigned) 
        VALUES ('Front', 'y')
             , ('2ndFront', 'y')
             , ('Forward', 'y')
             , ('Rear', 'y')
             , ('Pusher', 'n')
             , ('Tag', 'n')
    ;
    
    – Création de la vue AXLE_COMPOSANT_V

    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   
    ;
    
    – Création des triggers AXLE_COMPOSANT_INSERT_TR et AXLE_COMPOSANT_DELETE_TR

    – Insert d’essieux via la vue. Un échantillon :

    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_COMPOSANT_V (SerialNumber, Manufacturer, Model, AxleType, GAWR, PurchaseDate)
        SELECT 'FORWARD23156', 'Brassens Manufacturier', 'Axle Model FWD23' 
             , 'Forward', 23000, '2018-11-23'
    ;
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, AxleType, GAWR)
        SELECT 'REAR23156', '2018-11-20', 'Brassens Manufacturier', 'Axle Model REAR23' 
             , 'rear', 23000  
    ;
    
    (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. #912
    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
    Bonjours fsmrel, désolé si je suis un peu muet. Je suis très occupé ici. Même si je ne commente pas beaucoup sur le forum, je regarde quand même l'évolution de la base de données. Je dois aussi régler le problème avec openssl et je ne suis pas très en forme cette semaine.
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    Suite :

    - Vue AXLE_AFFECTATION_CAMION :

    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
    ;
    
    – Création des triggers associés à la vue : AXLE_AFFECTATION_CAMION_INSERT_TR, AXLE_AFFECTATION_CAMION_UPDATE_TR, AXLE_AFFECTATION_CAMION_DELETE_TR.

    – Affectation d’essieux à des camions via la vue. Un échantillon :

    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'FRONT16156', 'FRGAWR'  
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'FORWARD23156', '1INTGAWR'
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'REAR23156', 'REARGAWR'
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_1', '2INTGAWR' 
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_2', '3INTGAWR'
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_3', '4INTGAWR'
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, SerialNumber, Position)
        SELECT 'post#156', 'PUSHER8156_4', '5INTGAWR'
    
    UPDATE AXLE_AFFECTATION_CAMION     
        SET DesInstallationDate = '2018-11-25'
    WHERE CamionVIN = 'post#156' and SerialNumber = 'FRONT16156'
    
    UPDATE AXLE_AFFECTATION_CAMION 
       SET Position = '6INTGAWR'   
           , InstallationDate = '2018-11-26'
           , DesInstallationDate = '2018-11-27'
    WHERE CamionVIN = 'post#156' and SerialNumber = 'FRONT16156' AND DesInstallationDate = '2018-11-25'
    
    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'
    
    (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. #914
    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
    Microsoft vous en fait voir de toutes les couleurs

    Citation Envoyé par fsmrel
    Suite :

    - Vue AXLE_AFFECTATION_CAMION :
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    Suite :

    Pour voir les installations des essieux sur les camions :

    SELECT    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
    

    Les essieux, encore :-)

    - Vue CREATE VIEW AXLE_COMPOSANT_V (rappel, cf. message du 24 janvier)

    ------------------------------------------------------------------------------
    --  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   
    ;
    
    – Création des triggers associés à la vue :

    AXLE_COMPOSANT_INSERT_TR, AXLE_COMPOSANT_UPDATE_TR, AXLE_COMPOSANT_DELETE_TR.

    -- Création d’essieux (échantillon) :

    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, Manufacturer, Model, AxleType, GAWR, PurchaseDate)
        SELECT 'essieu 1', 'Brassens Manufacturier', 'Axle Model FR16' 
     ;        , 'FRONT', 16000  , '2018-11-16'
    
    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_COMPOSANT_V (SerialNumber, Manufacturer, Model, AxleType, GAWR, PurchaseDate)
        SELECT 'FORWARD23156', 'Brassens Manufacturier', 'Axle Model FWD23' 
             , 'Forward', 23000  , '2018-11-23'
    ;
    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_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, AxleType, GAWR)
        SELECT 'PUSHER8156_1', '2018-11-21', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
             , 'pusher', 8000  
    ;
    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_COMPOSANT_V (SerialNumber, PurchaseDate, Manufacturer, Model, AxleType, GAWR)
        SELECT 'PUSHER8156_3', '2018-11-23', 'Brassens Manufacturier', 'Axle Model PUSHER8' 
             , 'pusher', 8000  
    ;
    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_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#441', '2NDFRONT14441', '6INTGAWR'
    ;
    
    Update des essieux :

    
    -------------------------------------
    -- Un axle dédié au test 
    -------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (SerialNumber, AxleType, Manufacturer, Model)
        SELECT 'temp_fsm_01', 'FRONT', 'Brassens Manufacturier', 'Axle Model FR16' 
    ;
    ----------------------------------------------------------
    -- Un update avec des valeurs fantaisistes (mais testé)
    ---------------------------------------------------------
    UPDATE AXLE_COMPOSANT_V
        SET SerialNumber  = 'temp_fsm_dernier_cri'
          , AxleType  = 'pusher'
          , MfgDate = '2012-01-12'
          , PurchaseDate = '2013-01-13'
          , SaleDate = '2014-01-14'
          , GAWR  = 2000
          , AxleGVWR  = 3000
          , AxleTorque  = 12
     --     , Manufacturer  = 'Meritor', Model = 'Axle Model MER52'
            , Model = 'Axle Model PUSHER8'
    WHERE SerialNumber = 'temp_fsm_01'
    ; 
    
    (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

  16. #916
    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 ;-)

    J'ai vérifié COMPOSANT_AFFECTATION et AXLE_COMPOSANT_V.
      2  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    Les propriétés des composants devraient logiquement figurer dans les tables dédiées aux modèles de composants. En effet, à moins que je ne raisonne de travers, c’est le manufacturier qui fournit les valeurs de ces propriétés, et l’utilisateur ne fait que les recopier pour alimenter les tables de composants (ENGINE, TRANSMISSION, AXLE, DIFFERENTIAL).

    Ces propriétés sont les suivantes :

    Cas de la table ENGINE :

    MaxHorsePower, EngineMaxRPM, EngineMaxTorque

    Cas de la table TRANSMISSION :

    TransmissionSpeed

    Cas de la table AXLE :

    GAWR, AxleGVWR, AxleTorque

    Cas de la table DIFFERENTIAL :

    DifferentialRatio, DifferentialGVWR, DifferentialTorque, DifferentialLock, DifferentialPowerDivideLock

    Diagramme correspondant :



    Ces propriétés font évidemment double emploi avec celles des tables ENGINE, TRANSMISSION, AXLE, DIFFERENTIAL, et en poussant le bouchon, ces dernières devraient en être débarrassées (et l'utilisateur n'aura plus à les saisir, mais les choisir par exemple dans une combo) ...

    Sinon, tel composant en particulier peut-il avoir des valeurs de propriétés différentes de celles que propose le manufacturier ? Fréquemment ? Exceptionnellement ? Pourquoi ?

    Si elle était agréée, il va de soi que cette version ne saurait être mise en oeuvre dès maintenant, on attendra une V2, car pour le moment il y a tout le reste (je replonge dans les triggers)...

    Ce qui vaut pour les composants vaut pour les camions : par exemple le GVWR devrait figurer parmi les colonnes de la table TRUCK_MODEL, n'est-il pas ?
    (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

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir Ordigil,


    Citation Envoyé par fsmrel Voir le message
    Ces propriétés font évidemment double emploi avec celles des tables ENGINE, TRANSMISSION, AXLE, DIFFERENTIAL, et en poussant le bouchon, ces dernières devraient en être débarrassées...
    Mais bien entendu, dans le cas de la table COMPONENT_MODEL_AXLE, le type d’essieu doit être conforme a ce qui est déclaré dans la table AXLE_TYPE :


    Remarque :

    La date de fabrication d’un composant n’est pas directement fonction du composant lui-même, mais du modèle de composant : cette date devrait disparaître de la table COMPOSANT et faire l’objet d’un attribut ComponentModelMfgDate de la table COMPONENT_MODEL. Quelle objection verriez-vous ? Par exemple que deux composants d'un même modèle peuvent avoir des dates de fabrication différentes ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

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

  19. #919
    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 :-)

    Bien que le manufacturier fabrique le moteur, le client peut commander un moteur disons un Detroit DD15 de 450 HP, ou 475 HP ou 505 HP… Le client pourrait aussi commander un DD16 de 475 HP ou 505 HP ou 600 HP… Le model du moteur ne détermine pas nécessairement ses HP. J'ai ici un DD15 de 475 HP et un autre DD15 de 505 HP… Bien sûr que l'on peut utiliser des combo pour le choix des modèles de moteurs mais il faudra aussi avoir un sous combo pour le choix des HP, Torque, etc. Pour les transmissions, le model détermine le nombre de vitesses et le torque EX :une transmission Eaton Fuller RTLO-16D713A : 16 X 100 = 1600 LBS torque, 13 = 13 vitesses.
      0  0

  20. #920
    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
    Deux camions de même model peuvent avoir un GVWR différent, cela dépend de la suspension, des essieux, bâtie renforcé, etc. que le client commandera.

    Citation Envoyé par fsmrel
    GVWR devrait figurer parmi les colonnes de la table TRUCK_MODEL
      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