Article de fond: Requête futile (T)

Publié le 06 mars 2009 par Wtf

Je suis sûr que nous avons tous des histoires de projets cauchemardesques que nous héritons de nos clients. Que ce soit un programme critique écrit (en JavaScript) par le cousin de la secrétaire, ou un projet où on laisse les utilisateurs faire eux-mêmes l'analyse de leur outil de gestion de production. Jakeypoo nous fait partager un de ses pires cauchemars :

Imaginez ma surprise quand je suis tombé sur un de ces projets avec ses pages ASP bien écrites et commentées : Je me suis dit que ça allait être facile.

Mon boss me demanda que l'on se mette ensemble à travailler sur le diagramme de la base comme ça il serait capable de se référer aux noms de colonnes, clés, etc. Je lançais notre logiciel de modélisation de base et découvris avec horreur le nom des tables en cours de traitement.

Cn.  CnAdr.  CnAdrPrf.  CnAdrPrfPh_1.  CnAdrSal.  CnAttr... (ca rame ...)
CnRelEdu_1Attr.  CnRelEdu_1AttrCat_1.

Pas de clés étrangères? Ok, ce n’est pas grave. Fallait bien s'y attendre, continuons. Pas... pas de clés primaires? Dans aucune des tables ?
Ok Jake. T'es un mec astucieux, regarde le diagramme. La table "Cn" (Centre nerveux?) semble plutôt importante. Regardons ce que nous avons là.

 
Petit défi :peux-tu deviner ce que contient l'enregistrement 42?

Pour t'aider je te propose cette requête qui est utilisée pour trouver un enregistrement dans la base :

L'adresse email est dans le champ N° de téléphone. Les url des sites web sont dans le champ autre numéro de téléphone.
Les plus attentifs auront remarqué le passage "networkingFromClause" dans la requête précédente. Pourquoi ne pas taper simplement "FROM Cn?".

L'image qui suit devrait clarifier les choses (ou pas).