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

    Pour l'instant puisque je m'attarde sur la création de nouveaux camions, je procède comme si l'utilisateur achetait un nouveau camion. Vendeur, Camion, Moteur, Transmission, Essieux, Différentiels.




    Citation Envoyé par fsmrel Voir le message
    Comme je ne connais strictement rien à PHP, je ne suis pas en mesure de juger du code, mais en tout cas le résultat pour « Dzindzio Shop » est conforme.



    Comme je l’ai déjà dit, tous les triggers ne sont pas en place : précisez ceux qui doivent l’être en priorité, je m’en « occupationnerai » comme disait Clémenceau à quelqu’un qui l’interpellait ainsi : « Il faudrait solutionner ce problème ».
      0  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Je n’avais pas mis à jour DZINDZIO_TRUCKS_MANAGEMENT_TEMP en ce qui concerne le vendeur du camion, je viens de le faire. Merci de me dire si ça marche... (source : « Quel que soit le camion, on doit savoir à qui il a été acheté ».
    (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

  3. #1023
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 555
    Points
    38 555
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Comme je l’ai déjà dit, tous les triggers ne sont pas en place : précisez ceux qui doivent l’être en priorité, je m’en « occupationnerai » comme disait Clémenceau à quelqu’un qui l’interpellait ainsi : « Il faudrait solutionner ce problème ».
    Eh oui, mais cette réplique n'aurait aujourd'hui plus lieu d'être, le terme fait désormais partie du dictionnaire ex : celui du CNRTL ICI, même si l'académie française en réprouve l'usage comme mentionné LA

    Et je crains que l'horible "Candidater", de plus en plus courant lui aussi, se retrouve également bientôt dans tous les dictionnaires, il est déjà cité par le Larousse

    Désolé pour cette digression linguistique
      1  0

  4. #1024
    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 escartefigue,

    Ça semble un peu calme ici mais ce n'est pas terminé. Je suis en période de débug et à l'étude de Laravel qui est un peu plus compliqué à prendre en main que prévue vu que dans notre base de données nous utilisons uniquement les "Views" pour gérer tous les Insert, Update et Delete. Et Laravel n'est pas vraiment prévu pour gérer les SQL Views. J'arrive à m'en sortir mais c'est un procédé assez laborieux.... Plus de SQL Code à venir lorsque je trouverez des bugs dans notre base de données mais avec l'expertise de fsmrel, les bugs seront peu nombreux s'il y en a.


    Citation Envoyé par escartefigue Voir le message
    Eh oui, mais cette réplique n'aurait aujourd'hui plus lieu d'être, le terme fait désormais partie du dictionnaire ex : celui du CNRTL ICI, même si l'académie française en réprouve l'usage comme mentionné LA

    Et je crains que l'horible "Candidater", de plus en plus courant lui aussi, se retrouve également bientôt dans tous les dictionnaires, il est déjà cité par le Larousse

    Désolé pour cette digression linguistique
      0  0

  5. #1025
    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
    Bonjour fsmrel

    Voici la première page du site WEB linquée à la base de données avec l'aide de Laravel. Vous n'y avez pas encore accès car ce n'est qu'un préembule en mode debug. Lorsque j'aurai terminé le premier Model avec son Controller et sa View, je vous donner les coordonnées pour vous brancher au site web et vous me donnerez votre impression et les corrections utilisateur que vous aimeriez que j'apporte. C'est long hahaha, mais ça avance tranquillement. J'essaie de faire quelque chose de joli en votre honneur pour le site Web car vous m'avez donné beaucoup de votre temps et surtout beaucoup de patience dans ce projet. Je vous apprécie beaucoup fsmrel et j'ai beaucoup de reconnaissance à votre égard. Le site web est plus long à développer que prévu car je ne connais rien de Laravel hahaha. J'aurais été plus rapide avec Notepad pour créer tout mon code PHP mais.... je m'amuse tout en apprenant hahaha Je vais mettre votre nom sur cette page d'accès au site web car vous le méritez amplement.

    Pièce jointe 473991
      1  0

  6. #1026
    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
    Bon j'ai fait un premier essaie à partir du site web en développement et ça fonctionné du premier coup ;-) C'est super, je n'ai même pas besoin de m'en préoccupé lors de la création d'un nouveau camion, ça fonctionné à merveille Vous me sauvez énormément de travail sur le site web, pas besoin de me casser la tête avec du JScript puisque vos triggers gèrent tout.


    Citation Envoyé par fsmrel Voir le message
    Je n’avais pas mis à jour DZINDZIO_TRUCKS_MANAGEMENT_TEMP en ce qui concerne le vendeur du camion, je viens de le faire. Merci de me dire si ça marche... (source : « Quel que soit le camion, on doit savoir à qui il a été acheté ».
      1  0

  7. #1027
    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 ;-)
    Une vue pour l'administrateur lorsqu'il créera un nouveau camion. Ce sera plus lisible éventuellement mais pour l'instant j'utilise toujours la même page pour faire des tests. Alors, bien que en principe les vues de SQL ne devraient pas fonctionner avec Eloquent de Laravel, après quelques petites retouches personnelles fabrication maison Made In Montreal, j'ai réussi à afficher la vue "CAMION_LOCALISATION_V de sql server et de faire des Inserts. Il me reste à faire un peu de hacking pour pouvoir faire les Updates et les Deletes et aussi mettre le code pour vérifier les insertions pour afficher les messages d'erreurs si un camion VIN existe déjà dans la base de données. Vous savez pourquoi ça fonctionne ? Parce que vous êtes un expert dans les Triggers alors je peux passer des petites vites à Laravel et lui faire croire que les vues SQL Server sont des Tables après quelques petites modifications dans Laravel...

    Merci encore fsmrel pour votre patience et professionnalisme.

    Pièce jointe 474348

      1  0

  8. #1028
    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
    Ça serait bien si on pouvait ajouter des photos pour les Camions. Mais pas des photos directement dans la base de données mais dans un dossier sur le disque dur réservé aux photos de SQL Server.
      0  0

  9. #1029
    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, à escartefigue et à tous
    Je n'ai pas encore marqué ce blog comme résolu car il y a autre chose qui s'en vient. J'en profite pour remercier chaleureusement fsmrel qui m'a donné aussi généreusement sans compter des heures pour partager ses connaissances et son professionnalisme avec moi. C'est un enseignant de haut calibre et je me sens privilégié qu'il se soit attardé à mon projet qui à l'origine n'était qu'une petite base de données à 5 tables mais qui est devenue une base de données professionnelle grâce à son expertise et à son savoir faire afin de contourner les restrictions imposées par SQL Server. Il faut lire et relire les Triggers que fsmrel à écrit et qu'il a très bien documentés à l'intérieur du code. Tout est là, un cours complet en lui-même. C'est inouï tout ce que j'ai appris avec fsmrel, des choses qui semblaient sans intérêt à l'origine mais qui plus tard se sont révélées des plus importantes. Maintenant lorsque quelqu'un me dit que quelque chose est impossible à réaliser avec SQL Server, je me dis, SQL Server ne sait peut-être pas comment le faire mais il va le faire quand même car je ne travaille pas pour SQL Server mais c'est SQL Server qui travaille pour moi. Pour l'instant, j'étudie 2 frameworks Laravel et Bootstrap... Les deux ensembles n'arrivent pas à la cheville de fsmrel... Si l'avantage des frameworks est de sauver du temps en récupérant du code déjà existant pour développer une autre base de données ou un autre site WEB, les Triggers de fsmrel sont aussi tout autant récupérables pour concevoir d'autres bases de données et je préfère de loin un bon Trigger à un Framework. Du côté de Bootstrap ou autre, depuis l'arrivée de Grid dans CSS, ça change toute la donnée dans le développement d'un site WEB réactif. Vaut mieux plonger dans CSS que de se limiter à un Framework qui de toute façon est basé sur CSS, il n'y a pas de miracle. Prochaine étape, permettre à l'utilisateur d'ajouter des photos des camions mais pas d'enregistrer les photos dans la base de données mais dans un répertoire dédié aux photos sur le disque dur. J'imagine que 100 000 usagés avec 1000 photos chacun enregistrées dans des tables de SQL Server c'est de la folie. Vaut mieux avoir un répertoire sur le disque dur dédié aux photos que SQL Server ira chercher au besoin. À bientôt les photos, ça s'en vient. Merci encore fsmrel, je déteste encore tout autant les Triggers mais à voir tout ce que vous pouvez réaliser avec un Trigger, ça me donne le courage de m'y mettre à fond pour les développer et on sauve un temps vraiment appréciable pour le développement du site WEB. J'aimerais bien être un expert mais je ne serai qu'un étudiant pour le reste de mes jours. Apprendre, c'est amusant lorsqu'on est entouré d'experts de haut calibre qui se font un plaisir de partager leurs connaissances avec les autres. Vous avez toute ma gratitude fsmrel. Vous ne pouvez imaginer toute la reconnaissance et le respect que j'ai envers vous...
      2  0

  10. #1030
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut fsmrel fsmrel fsmrel ;-) :-) :-)
    Ça y est, j'ai réussi

    Après y avoir passé encore une nuit blanche, alors on peut faire des Updates des Views de SQL Server avec Laravel en passant par le MVC directement...
    Même si tous m'ont dit que c'est impossible en passant par Eloquent directement et que je serai obligé de passer par db::.....
    Mais non, ça fonctionne directement. Je savais bien que s'était possible et ce grâce à vos excellents Triggers. Laravel n'y voit que du feu, il ne voit pas de différence entre une Table et une Vue SQL, si bien sûr les Triggers sont bien fait sur le Server SQL. J'avais une erreur dans mon code HTML et je ne comprenais pas le message d'erreur que Laravel me retournait alors j'étais persuadé que mon erreur se trouvait dans le controller. Deux semaines à chercher alors que si quelqu'un pas borné à dire que s'est impossible avait pris le temps de m'écouter, ça aurait fonctionné en une heure... Mais j'ai la fierté d'avoir réussi seul. Et surtout de prouver que la majorité des développeurs de bases de données n'y connaissent rien en bases de données. Ce sont des robots qui apprennent les Frameworks par cœurs mais ils seraient incapables de développer des Triggers et de déboguer des bases de données existantes. Vous êtes des experts fsmrel et escartefigue, j'apprend énormément avec vous et surtout, j’apprends de la bonne façon. Il y a plusieurs façon de développer une base de données mais il n'y a qu'une seule bonne façon et s'est sans contredit la façon que vous procédez. Merci de partager votre expérience avec moi.

    https://www.base-de-donnees.com/orm/

    Avantages des ORM

    Réduction du code à créer et à maintenir pour l’informaticien qui manipule la base de données depuis son logiciel
    Homogénéité du code objet
    Accélération du temps de développement

    Inconvénients des ORM

    Problèmes de mise en place lorsque la base de données n’est pas faite dans les règles de l’art
    Dépendance à un outil ORM
    Ne permet pas de gérer les requêtes un peu complexes (jointures, groupements), les transactions ou les traitements par lots

    Les spécialistes des bases de données leur trouvent beaucoup de défauts. Les développeurs voient surtout une simplification et une accélération de leur temps de développement. La bonne pratique des ORM est certainement dans une utilisation modérée et circonstanciée de ces outils.



    Ce n'est pas parce qu'on est le seul qui n'a pas raison qu'on a nécessairement tort!!!
      2  0

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

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

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


    Citation Envoyé par l’excellent ordigil
    Après y avoir passé encore une nuit blanche, alors on peut faire des Updates des Views de SQL Server avec Laravel en passant par le MVC directement...
    Même si tous m'ont dit que c'est impossible en passant par Eloquent directement et que je serai obligé de passer par db...
    Félicitations !


    Citation Envoyé par ordigil the best
    Laravel n'y voit que du feu, il ne voit pas de différence entre une Table et une Vue SQL
    Pour se rendre compte de la différence, encore faudrait-il qu’il ait accès au catalogue relationnel de votre base de données, et ça c’est une autre paire de manches, il connaît pas 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.
      2  0

  12. #1032
    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
    Ça été possible juste à cause de vos triggers sinon impossible de mettre à jour une vue SQL avec un Framework. Avec CAMION_LOCALISATION_V, j'ai changé toutes les valeurs de toutes les colonnes d'un coup en incluant même le VIN et par le miracle de votre trigger, ça passé sans aucun problème alors que je me suis servi du VIN comme clé primaire. Ils règlent tout vos triggers. Vous méritez un trophée ;-)

    Citation Envoyé par fsmrel Voir le message
    Bonsoir ordigil,




    Félicitations !




    Pour se rendre compte de la différence, encore faudrait-il qu’il ait accès au catalogue relationnel de votre base de données, et ça c’est une autre paire de manches, il connaît pas ordigil !
      1  0

  13. #1033
    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
    Je ne suis pas satisfait avec mon site web alors je jette tout et je recommence. La classe .container c'est de l'histoire ancienne hahaha. J'oublie donc cette classe et je me retape tout mon code css. Plus de framework dans mon site web c'est plus long à développer car je dois développer toutes mes classes mais ça vaut le coup, alors adieu bootstrap et compagnie. Cette fois ça va être la bonne hahaha. Bientôt j'aurai besoin de vous pour le "fine-tuning" de la base de données, histoire de m'éviter autant que possible de me taper du JScript sur le site WEB. Je suis tellement content que vous m'ayez chicané à quelques reprises car je n'ai pas à écrire du code sur le site web pour compenser les lacunes de SQL Server, vous les avez corrigées directement dans les triggers. Bon je retourne m'amuser avec css avez le moins possible de JScript. Je vous montrerai bientôt où j'en suis, là je ne suis pas satisfait.
      2  0

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

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Comme disait Boileau :

    « Hâtez-vous lentement, et sans perdre courage,
    Vingt fois sur le métier remettez votre ouvrage,
    Polissez-le sans cesse, et le repolissez,
    Ajoutez quelquefois, et souvent effacez. »

    Allez, descendez le pusher ! Chargez et roulez !
    (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

  15. #1035
    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
    Merci fsmrel. Un petit message de vous m’encourage grandement à persévérer. Vous avez tellement mis de rigueur dans cette base de données alors j'essaie dans mettre tout autant pour le site WEB. Je prend exemple sur des durs de durs à l'affût des derniers développements dans la conception des sites web qui ont en horreur les frameworks et qui développent tout leur code ligne par ligne. Bon, j'essaie de maitriser 'css grid' pour l'intégrer dans mon site web, ça semble facile au premier regard mais non, il faut oublier certaines stupidités et mauvaises habitudes que nous avons apprises auparavant et raisonner de façon différente, il y a quand même plusieurs façons de faire avec grid. Le problème avec les mauvaise habitudes c'est que sans nous en rendre compte, nous y retombons rapidement car on règle un problème avec un autre problème et à la fin il est impossible de régler la source du problème sans tout recommencer comme il m'arrive présentement. Alors je repars à zéro. Je conserve certes quelques lignes de code css et tout le code pour interagir avec la base de données mais je refais toute la structure du site web basée sur grid. Merci pour l’encouragement fsmrel. Bientôt la dernière partie du cours de SQL Server pour l'intégration des photos dans la base de données comme je vous en ai parlé plus tôt. Ce que je veux c'est comme cela avec Filestream : "https://docs.microsoft.com/fr-fr/dotnet/framework/data/adonet/sql/filestream-data" et non de stocker des fichiers binaires dans la base de données. Serez-vous encore mon professeur pour le faire d'après les règles de l'art ?


    Citation Envoyé par fsmrel Voir le message
    Comme disait Boileau :

    « Hâtez-vous lentement, et sans perdre courage,
    Vingt fois sur le métier remettez votre ouvrage,
    Polissez-le sans cesse, et le repolissez,
    Ajoutez quelquefois, et souvent effacez. »

    Allez, descendez le pusher ! Chargez et roulez !
      0  0

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

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

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


    Citation Envoyé par ordigil
    Bientôt la dernière partie du cours de SQL Server pour l'intégration des photos dans la base de données comme je vous en ai parlé plus tôt. Ce que je veux c'est comme cela avec Filestream : "https://docs.microsoft.com/fr-fr/dotnet/framework/data/adonet/sql/filestream-data" et non de stocker des fichiers binaires dans la base de données. Serez-vous encore mon professeur pour le faire d'après les règles de l'art ?
    Je commence à regarder le fonctionnement de FILESTREAM. Je vais me faire un petit labo...

    En l'occurrence j’en suis seulement à la page 208 de l’ouvrage SQL Server 2014 de F. Brouard (SQLpro), C. Soutou, N. Souquet et D Barbarin…
    (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

  17. #1037
    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 :-)
    Ça l'air intéressant FILESTREAM mais je n'ai pas tout compris Il y a FILESTREAM dans les option de SQL Server alors si vous n'avez pas accès à toutes les fonctions ou options, dites-moi ce qu'il faut faire sur le serveur et aussi où sera le meilleur endroit pour mettre le fichiers des photos sur le serveur. Là je suis en plein étude de css grid, c'est amusant Mais puisque je m'était servi de grid pour faire mon navbar et la partie qui affiche la base de données, j'ai quelques problèmes pour tout mettre ensemble. C,est comme mettre un grid dans un grid dans un autre gris, il y a quelques conflit alors je dois presque tout refaire maintenant que je saisis mieux le fonctionnement.


    Citation Envoyé par fsmrel Voir le message
    Bonsoir ordigil,

    Je commence à regarder le fonctionnement de FILESTREAM. Je vais me faire un petit labo...

    En l'occurrence j’en suis seulement à la page 208 de l’ouvrage SQL Server 2014 de F. Brouard (SQLpro), C. Soutou, N. Souquet et D Barbarin…
      0  0

  18. #1038
    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, c'est triste, j'avais fait de jolies boutons mais en creusant un peu dans les spécifications HTML, je me rend compte que la plupart des sites WEB comme s'est le cas dans le développement des bases de données, il n'y a qu'une minorité qui respecte les standards :-( Ça allait bien jusqu'à ce que je tombe sur quelques articles dont les auteurs disent: "Un bouton n'est pas un lien et un lien n'est pas un bouton." Résultat, je recommence tout hahaha Vous m'avez disciplinez alors maintenant je suis très sévère avec moi-même, un peu parano avec moi-même..., mais c'est vous qui avez raison alors je n'écoute plus les adeptes des frameworks, ils sont experts en frameworks mais de piètres programmeurs ou développeurs. Un exemple, pour le même résultat, avec un framework, une fonction utilise 9 div mais avec du pur css, il n'en faut que 5 et ce, en respectant les normes HTML5. Alors je lis et relis vos Triggers et j'applique la même rigueur dans mon code HTML, ce qui fait que peu importe la personne qu regardera mon code, elle comprendra et pourra réutiliser une parti de mon code. Je ne vois plus les bases de données comme auparavant vous êtes un enseignant hors pair. Il vaut mieux passer une journée à raisonner avec un café à la main que passer 10 jours à essayer de corriger une base de données mal conçue au départ.
      1  0

  19. #1039
    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 ;-)
    Je me suis amusé un peu avec FILESTREAM. J'ai créé cette Table dans DZINDZIO_TRUCKS_MANAGEMENT_GILLES :

    
    USE DZINDZIO_TRUCKS_MANAGEMENT_GILLES
    GO
    
    CREATE TABLE [dbo].[PHOTO](
    	[CamionId] [int] NOT NULL,
    	[FileId] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    	[FSName] [varchar](25) NOT NULL,
    	[FSData] [varbinary](max) FILESTREAM  NOT NULL,
     CONSTRAINT [PK_PHOTO] PRIMARY KEY CLUSTERED 
    (
    	[CamionId] ASC,
    	[FileId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [PhotoFileStream],
     CONSTRAINT [UQ__PHOTO__6F0F98BE5B10C728] UNIQUE NONCLUSTERED 
    (
    	[FileId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] FILESTREAM_ON [PhotoFileStream]
    GO
    
    ALTER TABLE [dbo].[PHOTO]  WITH CHECK ADD  CONSTRAINT [FK_PHOTO_CAMION] FOREIGN KEY([CamionId])
    REFERENCES [dbo].[CAMION] ([CamionId])
    GO
    
    ALTER TABLE [dbo].[PHOTO] CHECK CONSTRAINT [FK_PHOTO_CAMION]
    GO
    
    
    Pour le INSERT :

    
    INSERT INTO dbo.PHOTO(CamionId, FileId, FSName, FSData)
    VALUES (21, NEWID(), 'Photo1', CAST('C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Pictures\VIN02a.jpg' AS VARBINARY));
    
    
    J'interroge la Table :

    
    SELECT TOP (1000) [CamionId]
          ,[FileId]
          ,[FSName]
          ,[FSData]
      FROM [DZINDZIO_TRUCKS_MANAGEMENT_GILLES].[dbo].[PHOTO]
      WHERE CamionId = 21
    
    
    J'obtiens :

    
    CamionId   FileId                                  FSName       FSData
    21         2C0380E1-D101-42FF-98E3-C446B255C8BE    Photo1       0x433A5C50726F6772616D2046696C65735C4D6963726F736F66742053514C
    
    

    Pour le UPDATE :

    
    USE DZINDZIO_TRUCKS_MANAGEMENT_GILLES
    GO
    
    UPDATE PHOTO
    SET [FSData] = (SELECT *
    FROM OPENROWSET(
    BULK 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Pictures\wallpaper.wiki-Semi-Truck-Pictures-PIC-WPE001156.jpg',
    SINGLE_BLOB) AS Document)
    WHERE CamionId = 21
    GO
    
    
    On voit que le UPDATE a fonctionné :

    Pièce jointe 485687


    Ça ne fait pas très joli mais ça fonctionne et j'ignore si c'est la façon de procéder ou si il y a une meilleure façon de faire
    Les UPDATES laissent des saloperies car ils n'effacent pas les anciennes photos et le log ?

    Si je fais ceci, on voit que le num_unprocessed_items indique 11. J'imagine si je faisais des UPDATES de 100 000 photos, ça deviendrait vite un cauchemar avec l'espace occupé sur le disque dur…

    
    EXEC sp_filestream_force_garbage_collection @dbname = N'DZINDZIO_TRUCKS_MANAGEMENT_GILLES
    
    
    J'obtiens ceci :

    Pièce jointe 485667

    Ça ne fait pas très rassurant car si je regarde dans le répertoire dédié aux photos pour SQL Server, toutes les photos sont encore là avec leur log alors ça va devenir énorme sur le disque dur.

    Pièce jointe 485670

    Ici c'est très bien expliqué comment SQL Server procède. C'est un peu frustrant car si je fais un UPDATE c'est que je ne veux plus rien savoir de l'ancienne photo et il devrait y avoir un processus automatisé pour effacer la photo et le log sans passer par un backup de la base de données. À moins qu'il y a quelque chose que je n'ai pas compris….. Quelqu'un pourrait m'éclairer ????? https://www.sqlskills.com/blogs/paul...ge-collection/
      0  0

  20. #1040
    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 ajouté cette contrainte dans la Table PHOTO afin d'éviter que le même Camion est 2 photos portant le même nom.
    Finalement, c'est amusant FILESTREAM

    
    	[CamionId] ASC,
    	[FileId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [PhotoFileStream],
     CONSTRAINT [PHOTO_CamionId_FSName_PK] UNIQUE NONCLUSTERED 
    
    
    Donc le script révisé pour créer la Table 'PHOTO' :
    Vous me direz si il y a quelque chose d'illogique ou de non conforme dans la Table et les Contraintes

    
    USE [DZINDZIO_TRUCKS_MANAGEMENT_GILLES]
    GO
    
    /****** Object:  Table [dbo].[PHOTO]    Script Date: 2019-06-24 04:30:52 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE TABLE [dbo].[PHOTO](
    	[CamionId] [int] NOT NULL,
    	[FileId] [uniqueidentifier] ROWGUIDCOL  NOT NULL,
    	[FSName] [varchar](25) NOT NULL,
    	[FSData] [varbinary](max) FILESTREAM  NOT NULL,
     CONSTRAINT [PHOTO_PK] PRIMARY KEY CLUSTERED 
    (
    	[CamionId] ASC,
    	[FileId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [PhotoFileStream],
     CONSTRAINT [PHOTO_CamionId_FSName_PK] UNIQUE NONCLUSTERED 
    (
    	[CamionId] ASC,
    	[FSName] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
     CONSTRAINT [UQ__PHOTO__6F0F98BE5B10C728] UNIQUE NONCLUSTERED 
    (
    	[FileId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] FILESTREAM_ON [PhotoFileStream]
    GO
    
    ALTER TABLE [dbo].[PHOTO]  WITH CHECK ADD  CONSTRAINT [PHOTO_CAMION_FK] FOREIGN KEY([CamionId])
    REFERENCES [dbo].[CAMION] ([CamionId])
    ON DELETE CASCADE
    GO
    
    ALTER TABLE [dbo].[PHOTO] CHECK CONSTRAINT [PHOTO_CAMION_FK]
    GO
    
    
    
    
    
      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