Flags de doublons
Passons aux choses sérieuses et importantes ! Une base de donnée ne doit pas comporter de doublons. Le problème du dédoublonnage est crucial à plus d'un point (ne serait-ce déjà que le fait de définir ce qu'est un doublon). FileMaker Pro nous propose de rechercher les doublons, à l'aide du signe "!" que l'on trouve dans les symboles en mode recherche. Mais FileMaker Pro nous trouve ET l'original ET le doublon... C'est sympa mais peu utile : comment nettoyer notre table de ses doublons, sans démolir au passage l'original ? Pour illustrer l'affaire des doublons, prenons comme exemple notre table PER_Personnes : on aimerait voir si il y existe des doublons. La première difficulté n'est informatique : c'est de définir ce qu'est un doublon... Vaste débat et certain fichiers sont impossibles à dédoublonner, car il n'y a pas de contrôle sur la manière dont les données sont encodées, ce qui ouvre la porte à toutes les fantaisies ! On pourrait donc rechercher avec le symbole "!" toutes les rubriques contenant le même nom, puis le même prénom. Ou bien créer une rubrique qui associe (concatène) le Nom & "" & Prenom (nom espace prénom), puis rechercher sur cette rubrique. Utilisons la capacité relationnelle de notre base et les liens. Le rationnel du raisonnement est de dire ceci :
Allons-y. Dans notre fichier exemple, on va donc sur le graphe des liens pour créer une nouvelle occurrence de PER__ qu'on nomme naturellement... per_PER__doublons. On la place bien proprement dans le graphe à droite de PER__ puis on crée les deux liens comme indiqué. Le lien étant ainsi établi, on peut créer (toujours après s'être placé sur le modèle PER_Tech) notre rubrique z_Doublon, en utilisant la fonction Si(). La structure est simple et ressemble à celle de Cas() : Si ( Test1, Résultat1, sinon Résultat2).
En français dans le code : si la valeur du Zkp de l'enregistrement lié n'est pas la même que celle de l'enregistrement à l'origine du lien , alors on écrit (n'oublions pas le résultat texte du calcul) le mot écrit entre les guillemets "Doublon", sinon, on écrit OK. Comme on est ici pour s'amuser, profitons-en, afin de faire joli, pour utiliser une autre fonction de mise en forme de texte : CouleutTexte ( Texte ; Rvb (Rouge, Vert, Bleu)). Cette fonction mettra le "Texte" en couleur selon les composantes rouge, verte et bleue, chacune des valeurs des couleurs s'étendant de 0 à 255. Voici le calcul : Placé sur le modèle PER_Fiche, on observe bien le résultat. On peut tester un doublon en dupliquant un enregistrement (à partir du menu FileMaker Pro, "Enregistrements", "Dupliquer").
Mais surtout, afin de faire la chasse aux doublons, il nous suffit d'effectuer une recherche dans la rubrique z_Doublon, sur la chaîne de caractères "doublon" pour les repérer tous, et les éliminer. Les originaux seront tous préservés.
On peut les éliminer d'office, sauf que... si nous avons inscrit Dressamaire dans une classe, comme notre vérification de doublons n'était pas active à la création ou à l'inscription, il faut vérifier lequel a été inscrit... Une recherche sur son nom nous montre qu'il a été inscrit deux fois dans la même classe. On peut éliminer le doublon sans souci ni arrières-pensées. Hop ! Attention, comme notre doublon était inscrit dans une classe, il existe donc un enregistrement dans la table INS qui le concerne. Si nous l'éliminons de la table des PERsonnes, nous allons avoir un enregistrement vide dans la table des INScriptions. Il faudra évidemment éliminer aussi cet enregistrement de INS. Ci-dessous le modèle INS_Liste avant et après avoir éliminé le doublon Yvan de la table des PERsonnes : On peut bien sûr affiner la définition du doublon en rajoutant des critères dans le lien (téléphone, date de naissance, adresse, etc...)
|