Salut,
J'ai récupéré une base de données dont la cohérence n'était pas assurée (absence de liens entre les tables, absence de clés d'unicité, ...).
Et j'ai un problème avec les clients (pas qu'eux, mais actuellement c'est le problème que je tente de résoudre).
La table client contient entre autre un id, un prénom et un nom. Wow, cool. Tout devrait bien aller. Eh bien non. Comme il n'y a pas de clé d'unicité, il y a plein de fois la même personne. Et comme c'est lié au dossier via une table intermédiaire pour permettre du many to many, ça me complique l'exercice pour corriger les incohérences.
Donc le picture est :
Une table dossier qui contient une clé primaire no_dossier,
une table personnes qui contient un id_personne,
et une table intermédiaire qui contient no_dossier et id_personne.
Mais vu l'absence de clé d'unicité, je me retrouve parfois à voir la même personne pour plusieurs dossiers (ce qui est correct), mais parfois à avoir autant de fois la même personne qu'elle a de dossiers (et c'est parfois beaucoup).
Je me retrouve donc à avoir
dossier dossier_personne personne 1 1/1 1/Albert/Anselme 2 2/1 ... 82 82/117 117/Albert/Anselme 118 118/185 185/Albert/Anselme
le résultat recherché étant évidemment quelque chose qui ressemblera à
dossier dossier_personne personne 1 1/4 4/Albert/Anselme 2 2/4 ... 82 82/4 118 118/4
J'imagine que je ne pourrais pas ramener ma table de client à une table cohérente qui n'a qu'une seule fois chaque personne.
Je devrai sans doute faire une nouvelle table avec un nouvel ID et qui sera alimentée par un select distinct de l'ancienne table de clients.
Ensuite je suppose qu'il va falloir lier les anciens ID de clients avec les nouveaux pour les clients qui avaient plusieurs ID et qui n'en ont maintenant plus qu'un seul (ce qui est plus logique).
Mais c'est ici que ça coince. Comment dois-je créer ce qui sera, je suppose, une table temporaire contenant les nouveaux et les anciens ID de clients. Puis comment faire pour faire l'update de la table dossier_personne pour qu'elle soit correcte avec les nouveaux ID ?
Je cherche mais je ne trouve pas. Aussi je fais appel à vos connaissances pour apprendre et me démêler de ce problème.
Merci.
Partager