(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.
Plus on se rapproche du but fixé, plus ça devient intéressant de jouer avec cette base de données et plus on comprend votre raisonnement au tout début de la création de cette base de données… Merci encore de ne pas m'avoir laisser tomber fsmrel, je vous suis vraiment reconnaissant pour tout ce que vous faites…
Bonjour Ordigil,
Bon, finalement je contrôle via les triggers DIFF_AFFECTATION_AXLE_INSERT_TR et DIFF_AFFECTATION_AXLE_UPDATE_TR que la date d’installation d’un différentiel est antérieure à sa date de désinstallation : le message signalant l’erreur est moins abscons que celui de SQL Server...
Pourriez-vous vérifier que ça fonctionne ?
Il faudra que j’en fasse autant concernant la table COMPOSANT_AFFECTATION.
(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 fait une petite retouche maison. LoL C'est joli hahaha. C'est très clair maintenant hahaha
IF @InstallationDate < @AxleDateAchat BEGIN SET @OkDateAchatAxle = 'N' SET @Engueulade = 'Update - Affectation de différentiel(s) : la date d''installation ''' + CAST(@InstallationDate AS VARCHAR) + ''' du différentiel ''' + @DiffSerialNumber + ''' est < à la date d''achat ''' + CAST(@axleDateAchat AS VARCHAR) + ''' de son axle ''' + @AxleSerialNumber +'''.' SELECT @Engueulade AS Engueulons_l, * FROM INSERTED -- RAISERROR (@Engueulade,16,1) -- state = 16 pour bloquer RAISERROR (@Engueulade,0,1) -- state = 0 pour les tests --------- RETURN différé ENDEngueulons_l Update - Affectation de différentiel(s) : la date d'installation '2014-04-02' du différentiel 'D-FOR03144562' est < à la date d'achat '2015-04-02' de son axle 'A-FOR03144562'.
(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.
Wowwwww merci de partager avec moi
Je pensais qu'on pouvais faire quelque chose avec ça :::
Ah je pensais qu'une contrainte voyait les valeurs avant SQL Server..... Disons une contrainte du genre if Date = '' THEN Date = 9999-12-31
Mais ce n'est pas grave puisque je ne demanderai pas d'entrer les dates sur les formulaires à la création d'un nouveau Camion et des Composants…. L'utilisateur devra les mettre à jour avec les Updates....
Je ne pense pas que ce soit un détail important dans notre cas…
Dans mes formulaires, si j'entre autre chose que Y-M-J PHP me retourne : Cannot execute SQL statement: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]La conversion d'un type de données varchar en type de données datetime a créé une valeur hors limites.
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]L'instruction a été arrêtée.
En attendant :
Table COMPOSANT_AFFECTATION, trigger COMPOSANT_RECOUVREMENT_TR (INSERT).
Affectation d’un composant à un camion (ou à un local) : pour rendre moins abscons le message d’erreur transmis par SQL Server, lors des inserts violant la règle Date de désinstallation > Date d’installation, avec le trigger on intercepte la tentative d’insert et si infraction, on rouspète tout en squeezant SQL Server (en l’occurrence la contrainte COMPOSANT_AFFECTATION_CHECK01).
--------------------------------------------------------------------------- -- 2e partie - interception des checks, histoire d'afficher des messages -- d'erreur moins abscons que ceux du SGBD... --------------------------------------------------------------------------- SET @ComposantDesinstallationDate = (SELECT ComposantDesInstallationDate FROM @inserted) SET @ComposantInstallationDate = (SELECT ComposantInstallationDate FROM @inserted) --- rappel : pour une date d'installation, '9999-12-31' correspond en fait à la date < à toute date signicative... IF NOT (@ComposantDesInstallationDate > @ComposantInstallationDate OR @ComposantInstallationDate = '9999-12-31') BEGIN DECLARE @VarcharI AS VARCHAR(20) DECLARE @VarcharD AS VARCHAR(20) SET @VarcharI = CAST(@ComposantInstallationDate AS VARCHAR) SET @VarcharD = CAST(@ComposantDesInstallationDate AS VARCHAR) SET @Engueulade ='Affectation de composant(s) : La date de désinstallation ''' + @VarcharD + ''' doit être postérieure à la date d''installation ''' + @VarcharI + ''' .' SELECT @Engueulade AS Engueulons, * FROM INSERTED -------- RAISERROR (@Engueulade,16,1) -- state = 16 pour bloquer RAISERROR (@Engueulade,0,1) -- state = 0 pour les tests RETURN END
Base DZINDZIO_TRUCKS_MANAGEMENT_TEMP : j’ai seulement modifié le trigger, mais il serait bon que vous vérifiassiez quand même que je n'ai pas fichu la zoubia...
(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.
Dans la foulée, pour les updates, j’ai mis à niveau le trigger COMPOSANT_RECOUVREMENT_UPDATE_TR.
Là encore, si vous pouviez vérifier que ça fonctionne dans 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.
je suis incapable d'ajouter un moteur sur le site Web alors que je peux ajouter transmission, Axle et Differential
On transformera le camion pour en faire un gros char à voiles (genre 3 mâts)…
Sinon pouvez-vous me transmettre les données correspondantes : camion, moteur, affectation, que j'essaie chez moi, des fois que...
(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.
Je crois que j'ai réussi….. Mais le formulaire des affectations ce n'est pas très jolie ni très pratique pour l'usager… Il doit utiliser le Vin du Camion et le Numéro de Série du composant…. Je vais essayer de faire en sorte que lorsqu'il créera un nouveau camion, lorsqu'il créera les composants, ils s'affecteront tous seuls au nouveau Camion.... Je n'ai pas encore testé en profondeur les création des camions et des composants mais je vous envois en privé les coordonnés et vos logins pour le site WEB....
Êtes-vous parvenu à vous brancher fsmrel ??? Il n'y a pas votre dernier update de SQL Server sur le Site Web.... Et je n'ai pas terminé de cacher les dates pour l'ajout des nouveaux composants…. Je vais remettre le site WEB à jour un peu plus tard et j'ajouterai CAMION_COMPOSITION_V2.... Et j'ajouterai les vue pour mettre à jour les colonne manquantes lors de la création des nouveaux camions et des nouveaux composants...
J’ai réussi à me connecter.
Avant la prise de contrôle par les triggers, SQL Server prend des initiatives malheureuses. Par exemple, si je saisis une date d’achat avec la valeur '1790-01-01', il ne bronche pas : tant mieux, puisque les triggers feront leur boulot. Mais il se cabre si je saisis la valeur '1750-01-01' (époque à laquelle les camions étaient tirés par des chevaux pas vapeur, il est vrai) :
Pauvre utilisateur
A cette occasion, je vois que dans les triggers xxxx_COMPOSANT_INSERT_TR j’ai mis en place une instruction qui force à '9999-31-12' les dates d’achat antérieures à D0 = ‘1940-01-01’. Bien que vous forciez les dates d’achat au moment de la création d’un camion, on peut conserver D0 telle quelle dans les triggers pour les nouveaux achats, ou choisir une autre valeur, vous me direz. Il serait opportun que l’on en fasse autant pour les triggers xxxx_COMPOSANT_UPDATE_TR. Avez-vous la possibilité au stade du WEB de transmettre une date, disons '9999-31-12' ou bien la date D0 évoquée, afin que SQL Server ne se cabre pas ?
En passant, j’ai perdu en cours de route la possibilité de créer des composants (bouton « New »).
(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.
Ben voyons, c’est quoi cette ânerie ? Pourquoi seulement des secondes ? Pourquoi cette limite inférieure parfaitement arbitraire et 10 fois trop restrictive ?... Pour ma part, certes je ne connais strictement rien à PHP, mais je rappelle que dans nos travaux nous nous appuyons quand même sur la norme SQL, laquelle est parfaitement logique.Envoyé par php
Le timestamp selon la norme :
YEAR : 0001 à 9999 MONTH : 01 à 12 DAY : 01 à 31 HOUR : 00 à 23 MINUTE : 00 à 59 SECOND : 00.000... à 61.999...
Bref je ferme illico la page PHP.
Quoi qu’il en soit, faisons en sorte de ne jamais laisser PHP prendre des initiatives stupides et se mêler de ce qui ne le regarde 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.
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