Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Petit job d'été en plein boum de PHP3 et MySQL : après réalisation d'un outil de statistiques de trafic, je présente mon travail au chef du service informatique, accompagné de mon responsable "expert Web". En pleine réunion, mon responsable décide de regarder l'architecture de l'outil : tables MySQL, requêtes, code PHP, etc.

Je m'attendais à des critiques, mais pas à celle là : « Mais c'est n'importe quoi ! Tu as une table qui permet de lister les pages vues par IP, mais aucune table qui compte combien de fois chaque page est visitée !... ».

Je lui montre alors qu'avec la bonne requête il est possible d'avoir cette information à partir de cette même table, et que ceci permet d'éviter les informations en double et tous les problèmes associés à la duplication de données.

Depuis, je suis le « ouf » qui compte le nombre de lignes dans une table pour connaître le nombre d'enregistrements, plutôt que de le stocker dans une seconde table. PEBKAC.
PEBKAC #7261 proposé par Garf365 le 20/03/2013 | 23 commentaires | 👍🏽 👎🏽 +232
J'ai bossé avec quelqu'un qui avait a priori les même genres d'idées. D'après lui il vaut mieux stocker une valeur (ici une date) dans deux fichiers car comme ça "peu importe la table que l'on lit, on a toujours l'information".
J'ai alors passé quelques minutes à lui expliquer simplement le principe du join, il a refusé, disant que le programme perdrait en efficacité.

Il pense aussi que la requête SQL doit être le plus générale possible (et si possible SELECT * FROM TABLE) et puis faire un traitement (avec ruptures et tout, on se croirait encore à l'époque où je codais en COBOL) sur les lignes reçues pour en extraire les lignes dont on a besoin et les stocker dans un fichier (oui oui un fichier!).

Il a le rôle d'expert, et donc il faut toujours suivre ses idées... Dur!
Commentaire #84148 écrit par alexrobas le 20/03/2013 à 08h52 | 👍🏽 👎🏽
ça m'étonne qu'à moitié, la plupart des gens se moquent royalement de la redondance de données
se doutent pas que c'est à la fois inutile et casse-couille à gérer par la suite
Commentaire #84149 écrit par foducool le 20/03/2013 à 08h53 | 👍🏽 👎🏽
Et que ça amène systématiquement à des problèmes de cohérence
Commentaire #84152 écrit par Garf365 le 20/03/2013 à 09h03 | 👍🏽 👎🏽
Ouch, au moins, mon ancien patron savait utiliser les WHERE
Commentaire #84153 écrit par Garf365 le 20/03/2013 à 09h04 | 👍🏽 👎🏽
Tu veux bien travailler ??? Espèce de ouf, va !


(si tu savais le nb de fois que j'ai entendu ça à mon propos, pas qu'en informatique, d'ailleurs, rien que parce que j'utilisais, par exemple, le terme "intermittent" au lieu de "une fois ça marche, une fois non", et que donc, le type était obligé d'aller voir un dico pour savoir ce que signifie "intermittent" !)
Commentaire #84156 écrit par Aaargh!!! le 20/03/2013 à 09h14 | 👍🏽 👎🏽
Par contre si la (ou les) requête(s) pour compter le nombre de vues de chaque page commence à prendre beaucoup de temps (après tout, des IP, il y en a un bon paquet), il serait judicieux de mettre le résultat en cache pour quelques heures.
Commentaire #84158 écrit par FBM le 20/03/2013 à 09h19 | 👍🏽 👎🏽
Un patron "awhere" ?
Commentaire #84159 écrit par Gabriel le 20/03/2013 à 09h20 | 👍🏽 👎🏽
Exactement, dès qu'on arrive à des nombres grands, les requêtes vont devenir lourdes, ce qui ralenti l'appli. Et pour peu qu'il y ait plusieurs utilisateurs en même temps, ça peut la planter.
On peu donc très bien avoir des tables de "cache" qui sont mises à jour en background toutes les jours ou heures par exemple (suivant les besoins).
Penser à ce genre ce chose en amont évite de recoder à la va-vite le truc quand on s'aperçoit que le SGBD commence à fatiguer.
Commentaire #84166 écrit par juu le 20/03/2013 à 09h39 | 👍🏽 👎🏽
"va chercher un dico"

...bah quoi? Certes, je connais les intermittents du spectacle, mais vu le contexte ça ne doit pas être ça...
Commentaire #84171 écrit par Sihn le 20/03/2013 à 09h46 | 👍🏽 👎🏽
Nous sommes en 2013, mysql nécessite toujours une extension tierce pour le support des vues matérialisées, et postgres recommande toujours le bricolage d'une solution a coups de triggers...
Commentaire #84180 écrit par b0fh le 20/03/2013 à 10h11 | 👍🏽 👎🏽
Si, exactement la même chose, une fois ça travaille, une fois ça travaille pas xD
Commentaire #84184 écrit par Garf365 le 20/03/2013 à 11h00 | 👍🏽 👎🏽
Ok pour l'utilisation des caches, mais là, ce n'était pas ça, c'est une table pour compter le nombre de fois qu'on a vu la page... a aucun moment il n'est prévu de recalculer cette donnée en fonction des autres données, donc aucun contrôle de cohérence.

Et on parle d'un intranet de petit société (100 personnes), avec 15 pages maximum...

Et la base de donnée est tellement souvent corrompu à cause de ce genre de pratique qu'elle est vider très régulièrement
Commentaire #84185 écrit par Garf365 le 20/03/2013 à 11h02 | 👍🏽 👎🏽
Lors d'un de mes stages mon responsable m'avait raconté une petite anecdote. On travaillait sur de la transformation de modèle de données Access en modèle objet, et pour argumenter il avait pris l'exemple d'une base métier qui serait particulièrement optimisée après ce traitement (redondance de données dans presque toutes les tables de mémoire). Et là le créateur de cette base s'est offusqué "Comment ? Mais elle est très optimisée ma base !". Question de point de vue, lui ce qu'il voyait c'était que l'accès aux données était rapide. Mais du coup la base était horriblement lourde.
Commentaire #84195 écrit par Acorah le 20/03/2013 à 11h44 | 👍🏽 👎🏽
C'était une panne qui était intermittente.

Le gars en face de moi (donc, mon supérieur !!) a donc déchiré la feuille et m'a dit : "la prochaine, fois, tu écris convenablement, tu marques <<une foie sa marche, une foie sa marche pat>> (là, c'est lui qui écrit, donc c'est ses fautes à lui, et encore je dois en oublier !) et tu écris pas en flamand, pauvre connard !"
Commentaire #84215 écrit par Aaargh!!! le 20/03/2013 à 13h40 | 👍🏽 👎🏽
Il faudrait faire quelque chose pour ceux qui écrivent « sa » au lieu de « ça »...
Du genre le clavier qui électrocute de plus en plus, du coup on économiserait des teras d'espace disque sans tous les kikoos qui ne peuvent plus poster des messages et des photos inutiles « pck l'aurdi me fé malle ».
Commentaire #84234 écrit par Dreamkey le 20/03/2013 à 14h30 | 👍🏽 👎🏽
C'est toujours aussi drôle de voir des gens qui on jamais essayé de comprendre comment tourne un base de données vouloir donner des leçons... :3
Commentaire #84265 écrit par blag le 20/03/2013 à 16h07 | 👍🏽 👎🏽
Je lui aurais écrit un autre genre de papier, plus penché « bye bye ». ^^
Commentaire #84289 écrit par Kebukai le 20/03/2013 à 17h47 | 👍🏽 👎🏽
@Dreamkey
Le clavier qui électrocute de plus en plus, ça marche pas. Quand il électrocute, c'est définitif.
Cependant, il peut électriser de plus en plus, jusqu'à, éventuellement, conduire au décès (ce qui est une électrocution).
Mais alors c'est un meurtre. Pour une faute d'orthographe, je suis plutôt contre, personnellement.
:)

(De plus, mon impression est que l'erreur "ça" "sa", n'est pas liée à l'écriture sms ou "reproduction libre sms" suggéré par ton texte entre guillemets (je pense en effet qu'en sms, on aurait écrit "lordi"). Mais plutôt à une triste est banale faute de français qui existait bien avant l'avènement des téléphone portable)
Commentaire #84373 écrit par FinDesH le 21/03/2013 à 00h08 | 👍🏽 👎🏽
Depuis que j'ai découvert SUM(1) sous MySQL, j'étais déjà un "ouf" pour les autres, alors quand j'ai commencé à y ajouter des IF, pfuuu, c'est devenu vraiment optimale et j'ai gagné beaucoup en perfs ...
Bref, tout ça pour dire, que compter c'est bien mais faut pas toujours utiliser COUNT(*).
Commentaire #84380 écrit par Cartman34 le 21/03/2013 à 07h25 | 👍🏽 👎🏽
@FinDesH : je te confirme ta dernière phrase, j'étais jeune à une époque où... le GSM n'existait pas (si, si, c'est possible) et les "sa s'est bien" ou "ça copine" ou autres bêtises de ce genre étaient déjà monnaie courante ! A croire que c'était fait exprès. Il y a aussi le mélange des infinitifs et des participes passés, en général, ils ne se trompent jamais... ils inversent parfaitement tout !
Commentaire #84386 écrit par Aaargh!!! le 21/03/2013 à 07h41 | 👍🏽 👎🏽
+1
Commentaire #84392 écrit par Garf365 le 21/03/2013 à 08h43 | 👍🏽 👎🏽
@FinDesH : une triste et banale faute... Celle-là aussi pique les yeux.
Commentaire #84488 écrit par Acorah le 21/03/2013 à 13h39 | 👍🏽 👎🏽
(j'avais oublié que le "d" était minuscule dans mon pseudo)
@Acorah : Ah ben oui.
Commentaire #84578 écrit par FindesH le 21/03/2013 à 19h13 | 👍🏽 👎🏽