Nous ne sommes pas encore fixés sur la langue utilisée dans la BD…. Moitié anglais, moitié français
...TruckVIN, TruckNumber, FrontAxleSerialNumber, FrontAxleInstallDate, FrontDiffSerialNumber, FrontDiffInstallDate,...
Nous ne sommes pas encore fixés sur la langue utilisée dans la BD…. Moitié anglais, moitié français
...TruckVIN, TruckNumber, FrontAxleSerialNumber, FrontAxleInstallDate, FrontDiffSerialNumber, FrontDiffInstallDate,...
Hmmmmmm Il y a des manufacturiers qui nomment le Forward = Front
Sur un tandem ça donne Forward = FrontRear et Rear = RearRear
Envoyé par fsmrel
Je n’ai pas mis à jour DZINDZIO_TRUCKS_MANAGEMENT_TEMP parce que j’y ficherais la patouille, il faut déjà, comme je l’ai dit, que je fasse le ménage chez moi, et il y a du boulot...
(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.
J’ai modifié le script du post #635 : ajout de la jointure avec CAMION pour t3 :
, t3 AS ( SELECT DISTINCT k.CamionVIN, k.CamionNumber, t1.ComposantId, x.DiffId , AxleSerialNumber, AxleInstallationDate , DiffSerialNumber, theDiffInstalDate AS DiffInstallationDate, DiffType FROM t1 JOIN AXLE AS z ON t1.ComposantId = z.ComposantId LEFT JOIN t2 ON t1.ComposantId = t2.AxleId FULL JOIN DIFF_AXLE as x on t2.Axleid = x.Axleid AND DiffInstalDate = theDiffInstalDate LEFT JOIN DIFFERENTIAL as y on x.DiffId = y.DiffId JOIN CAMION AS k ON k.CamionVIN = t1.CamionVIN ) SELECT CamionVIN, CamionNumber , COALESCE(AxleSerialNumber, '0') AS AxleSerialNumber, COALESCE(AxleInstallationDate, '9999-12-31') AS AxleInstallationDate , COALESCE(DiffSerialNumber, '0') AS DiffSerialNumber, COALESCE(DiffInstallationDate, '9999-12-31') AS DiffInstallationDate , COALESCE(DiffType, '0') AS DiffType FROM t3 ;
(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.
Voici la vue CAMION_FORWARD_V
---------------------------------------------------------------- -- Les différentiels 'Forward' par camion ---------------------------------------------------------------- go CREATE VIEW CAMION_FORWARD_V (CamionVIN, CamionNumber, ForwardAxleSerialNumber , AxleInstallationDate, ForwardNumeroSerie, ForwardInstallationDate, DiffType) AS ---------------------------------------------------------------------------------------------------- -- Pour chaque paire {camion, essieu} on récupère la date la plus récente d'installation d'essieu. -- on ne considère que les essieux de type 'forward'. ----------------------------------------------------------------------------------------------------- WITH t1 AS ( SELECT DISTINCT CamionVIN, CamionNumber, LocalisationId, MAX(ComposantInstallationDate) AS AxleInstallationDate, y.ComposantId FROM CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId JOIN AXLE AS z ON y.ComposantId = z.ComposantId -- pour ne considérer que les essieux JOIN COMPOSANT AS t ON t.ComposantId = y.ComposantId WHERE LOWER(AxleType) = 'forward' GROUP BY LocalisationId, CamionVIN, CamionNumber, y.ComposantId ) -------------------------------------------------------------------------- -- Pour chaque différentiel, on récupère la date la plus récente -- d'installation sur essieu. Afin d'intercepter les différentiels -- de type non 'forward' installés sur des essieux de type 'forward', -- on ne filtre pas sur le type 'forward'... -- Quand on aura créé le contrôle de cohérence des différentiels et des -- essieux, on pourra activer le filtre... --------------------------------------------------------------------------- , t2 AS ( SELECT y.AxleId, MAX(DiffInstalDate) AS theDiffInstalDate FROM DIFF_AXLE AS y JOIN DIFFERENTIAL AS z ON z.DiffId = y.DiffId ------ WHERE LOWER(DiffType) = 'forward' -- filtrage des différentiels GROUP BY y.AxleId ) ---------------------------------------------------------------------------------------------------------- -- Pour chaque différentiel 'forward' le plus récemment installé sur essieu, on récupère les informations -- obtenues via les variables t1, t2, à savoir le CamionVIN, le CamionNumber, et tant qu'à faire, le -- numéro de série et la date d'installation de l'essieu hébergeant le différentiel. -- Si un essieu 'forward' n'a pas de différentiel, au résultat la colonne ForwardNumeroSerie est forcée à 0. -- Si un différentiel 'forward' n'est pas sur un essieu (gloups !) il n'est sur aucun camion : -- il ne figure pas dans le résultat... ----------------------------------------------------------------------------------------------------------- , t3 AS ( SELECT DISTINCT k.CamionVIN, k.CamionNumber, t1.ComposantId, x.DiffId , AxleSerialNumber, AxleInstallationDate , DiffSerialNumber, theDiffInstalDate AS DiffInstallationDate, DiffType FROM t1 JOIN AXLE AS z ON t1.ComposantId = z.ComposantId LEFT JOIN t2 ON t1.ComposantId = t2.AxleId FULL JOIN DIFF_AXLE as x on t2.Axleid = x.Axleid AND DiffInstalDate = theDiffInstalDate LEFT JOIN DIFFERENTIAL as y on x.DiffId = y.DiffId JOIN CAMION AS k ON k.CamionVIN = t1.CamionVIN ) SELECT CamionVIN, CamionNumber , COALESCE(AxleSerialNumber, '0') AS AxleSerialNumber, COALESCE(AxleInstallationDate, '9999-12-31') AS AxleInstallationDate , COALESCE(DiffSerialNumber, '0') AS DiffSerialNumber, COALESCE(DiffInstallationDate, '9999-12-31') AS DiffInstallationDate , COALESCE(DiffType, '0') AS DiffType FROM t3 ; GO
SELECT '' AS CamionForward, * FROM CAMION_FORWARD_V ;
(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.
fsmrel, vous connaissez tous les Fonctions et Expressions SQL…… Donc si je comprend bien, au lieu d'avoir utilisé COALESCE, nous aurions pu arriver au même résultat avec CASE mais il aurait fallu utilisé la Fonction ''ISNULL'' ?????
Voici la vue CAMION_REAR_V
---------------------------------------------------------------- -- Les différentiels 'rear' par camion ---------------------------------------------------------------- go CREATE VIEW CAMION_REAR_V (CamionVIN, CamionNumber, RearAxleSerialNumber , AxleInstallationDate, RearNumeroSerie, RearInstallationDate, DiffType) AS ---------------------------------------------------------------------------------------------------- -- Pour chaque paire {camion, essieu} on récupère la date la plus récente d'installation d'essieu. -- on ne considère que les essieux de type 'rear'. ----------------------------------------------------------------------------------------------------- WITH t1 AS ( SELECT DISTINCT CamionVIN, CamionNumber, LocalisationId, MAX(ComposantInstallationDate) AS AxleInstallationDate, y.ComposantId FROM CAMION AS x JOIN COMPOSANT_AFFECTATION AS y ON x.CamionId = y.LocalisationId JOIN AXLE AS z ON y.ComposantId = z.ComposantId -- pour ne considérer que les essieux JOIN COMPOSANT AS t ON t.ComposantId = y.ComposantId WHERE LOWER(AxleType) = 'rear' GROUP BY LocalisationId, CamionVIN, CamionNumber, y.ComposantId ) -------------------------------------------------------------------------- -- Pour chaque différentiel, on récupère la date la plus récente -- d'installation sur essieu. Afin d'intercepter les différentiels -- de type non 'rear' installés sur des essieux de type 'rear', -- on ne filtre pas sur le type 'rear'... -- Quand on aura créé le contrôle de cohérence des différentiels et des -- essieux, on pourra activer le filtre... --------------------------------------------------------------------------- , t2 AS ( SELECT y.AxleId, MAX(DiffInstalDate) AS theDiffInstalDate FROM DIFF_AXLE AS y JOIN DIFFERENTIAL AS z ON z.DiffId = y.DiffId ------ WHERE LOWER(DiffType) = 'rear' -- filtrage des différentiels GROUP BY y.AxleId ) ---------------------------------------------------------------------------------------------------------- -- Pour chaque différentiel 'rear' le plus récemment installé sur essieu, on récupère les informations -- obtenues via les variables t1, t2, à savoir le CamionVIN, le CamionNumber, et tant qu'à faire, le -- numéro de série et la date d'installation de l'essieu hébergeant le différentiel. -- Si un essieu 'rear' n'a pas de différentiel, au résultat la colonne RearNumeroSerie est forcée à 0. -- Si un différentiel 'rear' n'est pas sur un essieu (gloups !) il n'est sur aucun camion : -- il ne figure pas dans le résultat... ----------------------------------------------------------------------------------------------------------- , t3 AS ( SELECT DISTINCT k.CamionVIN, k.CamionNumber, t1.ComposantId, x.DiffId , AxleSerialNumber, AxleInstallationDate , DiffSerialNumber, theDiffInstalDate AS DiffInstallationDate, DiffType FROM t1 JOIN AXLE AS z ON t1.ComposantId = z.ComposantId LEFT JOIN t2 ON t1.ComposantId = t2.AxleId FULL JOIN DIFF_AXLE as x on t2.Axleid = x.Axleid AND DiffInstalDate = theDiffInstalDate LEFT JOIN DIFFERENTIAL as y on x.DiffId = y.DiffId JOIN CAMION AS k ON k.CamionVIN = t1.CamionVIN ) SELECT CamionVIN, CamionNumber , COALESCE(AxleSerialNumber, '0') AS AxleSerialNumber, COALESCE(AxleInstallationDate, '9999-12-31') AS AxleInstallationDate , COALESCE(DiffSerialNumber, '0') AS DiffSerialNumber, COALESCE(DiffInstallationDate, '9999-12-31') AS DiffInstallationDate , COALESCE(DiffType, '0') AS DiffType FROM t3 ; GO
SELECT '' AS CamionRear, * FROM CAMION_REAR_V ;
Je n’ai rien fait pour les 2ndFront et les pushers.
Je n’ai pas touché à la vue CAMION_COMPOSITION_V, car normalement son code n’est pas impacté.
Je n’ai pas touché à la vue CAMION_COMPOSITION , car normalement son code n’est pas impacté.
J’ai mis à jour DZINDZIO_TRUCKS_MANAGEMENT_TEMP, à vos risques et périls... Il faudra que pense à remettre les différentiels que j’ai virés.
Il faudrait que je songe à aller faire dodo, j’ai le nez qui tombe sur les touches du clavier...
(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.
Merci fsmrel, pendant que vous dormirez, je m'amuserez un peu avec DZINDZIO_TRUCKS_MANAGEMENT_TEMP
Passez une belle nuit
(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.
Bonjour Ordigil,
J’ai créé le trigger DIFF_AXLE_INSERT_TR qui a pour objet de s’assurer lors d’un INSERT dans la table DIFF_AXLE :
1. Qu’un différentiel n’est pas en même temps sur deux essieux ;
2. Qu’un essieu n’héberge pas en même temps deux différentiels ;
3. Que le type d’un essieu et celui du différentiel hébergé sont les mêmes ;
4. Que le manufacturier d’un essieu et le manufacturier du différentiel hébergé sont le même.
Il faudra que je traite de l’UPDATE de la table DIFF_AXLE et du DELETE.
J’ai créé la vue DIFF_AFFECTATION_AXLE et le trigger DIFF_AFFECTATION_AXLE_INSERT_TR qui ont pour objet de simplifier la saisie des données (INSERT) de la table DIFF_AXLE.
Là aussi, il faudra que je m’occupe de l’UPDATE et du DELETE.
Je joins un jeu d’essai minimal pour tester. Ça commence par un BEGIN TRANSACTION et ça se termine par un ROLLBACK pour éviter de mettre à jour les tables de façon permanente.
A noter que si l’on ne fournit pas de date d’installation du différentiel, par défaut c’est la date d’achat de celui-ci. Si l’on ne fournit pas de date de désinstallation, par défaut c’est le '9999-12-31'.
BEGIN TRANSACTION ; DELETE FROM DIFFERENTIAL WHERE DiffSerialNumber = 'diffFront16156' ; SELECT * FROM DIFFERENTIAL ; INSERT INTO DIFFERENTIAL_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele , DiffType, Ratio, GVWR, Torque, Lock, PDLock, Serie) SELECT 'diffFront16156', (SELECT DateAchat FROM AXLE_COMPOSANT_V WHERE NumeroSerie = 'FRONT16156'), 'Meritor', 'DIFF 40' , 'rear', 374, 2000, 1000, 'Y', 'N', 'Meritor série 1' ; ------------------------------------------------- -- on oublie de fournir le numéro de l'essieu ------------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber) SELECT 'diffFront16156' ; --------------------------------------------------- -- on oublie de fournir le numéro du différentiel --------------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (AxleSerialNumber) SELECT 'FRONT16156' ; --------------------------------------------------- -- différentiel : numéro de série inconnu --------------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156$', 'FRONT16156' ; --------------------------------------------------- -- essieu : numéro de série inconnu --------------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156', 'FRONT16156$' ; -------------------------------------------------------------- -- différentiel et essieu connus et de type non compatible -------------------------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156', 'FRONT16156' ; -------------------------------------------------------------- -- différentiel et essieu connus et de type non compatible : -- on corrige le type du différentiel -------------------------------------------------------------- UPDATE DIFFERENTIAL SET DiffType = 'front' WHERE DiffSerialNumber = 'diffFront16156' --------------------------------------- -- 2e essai ! ça devrait être bon ---------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156', 'FRONT16156' ; ----------------------------------------------------------------------- --Le différentiel et l'essieu sont connus et de type compatible, -- le fabriquant n'est pas celui de l'essieu -- on corrige le fabriquant du différentiel ----------------------------------------------------------------------- UPDATE DIFFERENTIAL_COMPOSANT_V SET Fabriquant = 'fsmrel' WHERE NumeroSerie = 'diffFront16156' --------------------------------------------- -- nouvel essai ! ça devrait être bon --------------------------------------------- INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156', 'FRONT16156' ; -------------------------------------------------------------- -- test bilocation : 2 différentiels sur le même essieu -------------------------------------------------------------- -- diffFront16156 désinstallé le 2018-12-10 UPDATE DIFF_AXLE set DiffDesInstalDate = '2018-12-10' WHERE DiffId = (SELECT DiffId FROM DIFFERENTIAL WHERE DiffSerialNumber = 'diffFront16156') -- diffFront16156 : correctif du manufacturier UPDATE DIFFERENTIAL_COMPOSANT_V SET Fabriquant = 'fsmrel' WHERE NumeroSerie = 'diffforward16156' -- diffforward16156 : devient du type front UPDATE DIFFERENTIAL SET DiffType = 'front' WHERE DiffSerialNumber = 'diffforward16156' -- diffforward16156 et diffFront16156 ne doivent pas être sur le même essieu en même temps INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber, InstallDate, DesinstallDate) SELECT 'diffforward16156', 'FRONT16156', '2018-11-09', '9999-12-31' -- diffforward16156 et diffFront16156 peuvent se succéder sur le même essieu INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber, InstallDate, DesinstallDate) SELECT 'diffforward16156', 'FRONT16156', '2018-12-10', '9999-12-31' ; INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber, InstallDate, DesinstallDate) SELECT 'diffFront16156', 'FRONT14426', '2018-12-01', '2018-12-03' ; --------------------------------------------- -- un coup d'oeil en passant -------------------------------------------- SELECT '' AS DIFF_AXLE, * FROM DIFF_AXLE AS x JOIN DIFFERENTIAL AS y ON x.DiffId = y.DiffId JOIN AXLE AS z ON x.AxleId = z.ComposantId --------------------------------------------------------------------------------------------- -- pour test date instal et désinstal = '9999-12-31' (tentative diff sur 2 essieux à la fois) --------------------------------------------------------------------------------------------- INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, Fabriquant, Modele, AxleType, GAWR) SELECT 'FRONT1615699', 'FSMREL', 'modèle fr16' , 'FRONT', 16000 ; SELECT '' AS 'voir FRONT1615699', * FROM AXLE_COMPOSANT_V WHERE NumeroSerie = 'FRONT1615699' INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber) SELECT 'diffFront16156', 'FRONT1615699' ---------------------------------------------- -- un coup d'oeil ---------------------------------------------- SELECT '' AS DIFF_AXLE, * FROM DIFF_AXLE AS x JOIN DIFFERENTIAL AS y ON x.DiffId = y.DiffId JOIN AXLE AS z ON x.AxleId = z.ComposantId ------------------------------------------------------------------------- -- le précédent est installé pour la période '9999-12-31', '9999-12-31' ------------------------------------------------------------------------- INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, Fabriquant, Modele, AxleType, GAWR) SELECT 'FRONT161569988', 'FSMREL', 'modèle fr16' , 'FRONT', 16000 ; ---------------------------------------------- -- un coup d'oeil ---------------------------------------------- SELECT '' AS 'voir FRONT161569988', * FROM AXLE_COMPOSANT_V WHERE NumeroSerie = 'FRONT161569988' INSERT INTO DIFF_AFFECTATION_AXLE (DiffSerialNumber, AxleSerialNumber, InstallDate) SELECT 'diffFront16156', 'FRONT161569988', '9999-12-31' ---------------------------------------------- -- un coup d'oeil ---------------------------------------------- SELECT '' AS DIFF_AXLE, DiffSerialNumber, AxleSerialNumber, DiffInstalDate, DiffDesInstalDate FROM DIFF_AXLE AS x JOIN DIFFERENTIAL AS y ON x.DiffId = y.DiffId jOIN AXLE AS z ON x.AxleId = z.ComposantId ROLLBACK ;
J’ai mis à jour les bases Temp et DZINDZIO_TRUCKS_MANAGEMENT_TEMP.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
C'est étrange je viens juste de recevoir votre message
Vous travaillez tellement dur sur cette BD.
J'ai regardé plusieurs tables et vues aujourd'hui, c'est fascinant
Ok je regarde vos deux nouvelles vues. Encore un gros merci fsmrel.
Il y a des 'AXLE' et des 'DIFF' dont je n'aurai presque pas d'infos à la saisie et peut-être même que je ne trouverai jamais. Il va arriver que nous ayons le même No de série pour un AXLE et son DIFF car les plaques signalétiques sont manquantes. Dans ce cas nous ajouterons un A- au début du No de série pour ces 'AXLES' et un D- pour les No de série de ces 'DIFFERENTIAL'. Plus tard peut-être qu'on pourra obtenir d'un concessionnaire les No de série appropriés….
Bonjour fsmrel. Dans la Table 'AXLE' et la Vue 'AXLE_COMPOSANT_V', il ne peut pas avoir la colonne 'AxleLock' car c'est le différentiel qui prend en charge le 'AxleLock' et le 'Power Divider Lock'. Désolé si je vous ai induis en erreur…. ....
(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.
Bonjour fsmrel
Oui, il faut enlever ce qui est répétitif ou incohérent… Lorsque nous aurons besoin d'afficher 'AxleLock", nous savons où aller le chercher ...
Même si je trouve quelques incohérences lorsque j'affiche les Vues, je ne les mentionne pas maintenant car je ne sais pas quelles sont les Vues qui sont terminées et celles qui ne le sont pas…
J'ai fait la vue 'TRANSMISSION_AFFECTATION_CAMION' hier à l'aide de la vue 'MOTEUR_AFFECTATION_CAMION' et j'ai apporté les corrections pour le trigger 'TRANSMISSION_AFFECTATION_CAMION_INSERT_TR'. Ça semble fonctionner. Vous pouvez y jeter un coup d'oeil..
C'est triste que Microsoft enlève ''Database Diagrams" de SSMS à partir de la version 18... C'était pratique pour avoir un visuel de la BD ... On dit toujours qu'une image vaut mille mots…
Quelle base ?Envoyé par ordigil
(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.
Effectivement, je n’avais pas encore créé le script de déclaration de la vue et le trigger d’insert, merci de l’avoir fait, ça a l’air de marcher.
Vous aurez noté que si la date d’installation n’est pas précisée, par défaut c’est la date d’achat de la transmission qui est utilisée. Si la date de désinstallation n’est pas précisée, par défaut c’est le '9999-12-31' :
Il faudra que je trouve un moment pour les triggers d’UPDATE et DELETE (sans oublier l’affectation à un local...)INSERT INTO TRANSMISSION_AFFECTATION_CAMION (CamionVIN, NumeroSerie) SELECT 'vin01', 'Série tr01'
(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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager