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

Algorithmes et structures de données Discussion :

Empêcher la création de doublon


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut Empêcher la création de doublon
    Bonjour à tous,

    Voici un petit problème sur lequel j'ai quelques difficultées.
    je possède 2 tables :
    - identite[id_auto(int),nom(varchar), prenom(varchar), date_naissance(date),fk_id_foyer(int)]
    - foyer[id_auto(int),rue(varchar),numero(varchar),boite(varchar),code(varchar),localite(varchar)]

    La seconde table sert au regroupement familial et la première à identifier chaque personne.

    Les futurs utilisateurs doivent avoir la possibilité d'insérer une personne sans connaître l'orthographe réelle du nom ou du prénom voir l'adresse.

    Cependant, j'aimerai mettre au point un système de rapprochement. D'une part géographique entre 2 personnes, et d'autre part sur l'éventuel possibilité de doublon du à une mauvaise orthographe.

    Si je me suis bien expliqué... vous voyez tout de suite où je veux en venir...
    Quel système ou algo me permettrait de diminuer les chances de création de doublon???

    Merci de votre aide, conseil ou solution!

    ++

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Par exemple:

    Encoder les noms "prononcables" avec soundex puis, lors de la création d'un nouvel enregistrement, faire une recherche classique de doublon.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Effectivement, le soundex faisait déjà partie des mes idées mais je ne me fie pas de la fiabilité du procédé. Je contrôle en plus la date de naissance bien que ce champ puisse très bien être erroné.

    autre chose?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par defcon_suny Voir le message
    Effectivement, le soundex faisait déjà partie des mes idées mais je ne me fie pas de la fiabilité du procédé. Je contrôle en plus la date de naissance bien que ce champ puisse très bien être erroné.

    autre chose?
    Si tu veux plus de "souplesse", tu peux créer une mesure de distance entre 2 enregistrement... une sorte de combinaison linéaire des distances champs à champs (soundex, date, numeros, ...)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Si tu veux plus de "souplesse", tu peux créer une mesure de distance entre 2 enregistrement... une sorte de combinaison linéaire des distances champs à champs (soundex, date, numeros, ...)
    C'est l'idée que j'allais suggérer avant de lire ton post. C'est ce qui me semble le plus propre et le plus souple.

  6. #6
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Si tu veux plus de "souplesse", tu peux créer une mesure de distance entre 2 enregistrement... une sorte de combinaison linéaire des distances champs à champs (soundex, date, numeros, ...)
    Peux tu approfondir ta pensée? serait-ce une sorte de distance levenshtein?

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par defcon_suny Voir le message
    Peux tu approfondir ta pensée? serait-ce une sorte de distance levenshtein?
    Non, rien de si compliqué. C'est juste une mesure de distance entre 2 vecteurs.
    - Un vecteur représente un enregistrement.
    - Les coordonées d'un vecteur sont des valeurs des champs

    Ensuite on calcule la distance entre les 2 vecteurs (= les 2 enregistrements) par une simple moyenne pondérée:

    #1: Dupond : Stephane : 04/03/1975
    #2: Dupont : Stephanie : 04/03/1975

    dist(#1,#2) = a*d1(Dupond","Dupont") + b*d2("Stephane","Stephanie") + c*d3("04/03/1975","04/03/1975")

    ou a,b,c sont des réels (les poids)
    et d1,d2,d3 sont des mesure de distance spécifiques: ascii, soundex, levenshtein, ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Empêcher la création des toto~
    Par Vespasien dans le forum Administration système
    Réponses: 10
    Dernier message: 08/03/2008, 13h55
  2. Empêcher la création de table
    Par icer dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 24/04/2007, 16h38
  3. [VBA]Empêcher la création d'un enregistrement vide
    Par Julien42 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/04/2007, 18h16
  4. Réponses: 5
    Dernier message: 08/09/2006, 12h23
  5. Empêcher la création de nouvelles bases
    Par Dertron dans le forum Requêtes
    Réponses: 6
    Dernier message: 31/08/2006, 11h35

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