2009-11-13 16 views
1

Comment trouver un utilisateur en utilisant les propriétés suivantes à condition que l'utilisateur ne pas idBase de données question de conception

  • Nom
  • Nom du Père
  • Nom de la mère
  • Date de naissance
  • Sexe

    Rappelez-vous que l'utilisateur peut faire des erreurs lors de la frappe :(

S'il vous plaît partager vos idées ....

+2

Pourquoi est-ce une question de conception? Quel genre d'erreur devrait être autorisé? –

+0

Vous ne pouvez absolument pas rendre cela fiable, sauf si vous êtes sûr à 100% que l'un de vos paramètres de recherche est unique dans votre jeu de données. – Galwegian

+0

Je pense que nous ne comprenons pas votre problème. Veuillez expliquer l'exigence plus avant, peut-être en termes d'actions de l'utilisateur. Par exemple: "john smith insère un enregistrement, mais il tape son nom en" Jhon Smith ", un utilisateur différent appelé" john smith "a déjà un enregistrement Comment John-Smith peut-il réparer son erreur?" – djna

Répondre

1

Les utilisateurs font des erreurs en tapant ... mais pas en tapant leur propre nom.

Essayez votre homme ainsi:

SELECT * FROM <your_table_name_here> WHERE name LIKE <name you are looking for> 

Ceci renverra toutes les lignes avec ce nom, si vous le souhaitez filtrer sur des sujets plus vous pouvez ajouter

AND dateOfBirth LIKE <the day of birth> 

À la fin de votre requête

1

Dont faire de cette façon. Encore si vous voulez aller de cette façon seulement, utilisez la syntaxe comme dans votre requête sql. Je pense qu'il sera beaucoup plus utile pour tous si vous pouvez fournir plus d'informations sur PROBLEME.

1

De quelle base de données travaillez-vous? Si un ORM est impliqué, vous pouvez simplement coder une fonction pour rechercher des cas possibles.

1

Il s'agit autant de la question de la conception de l'interface utilisateur que de la conception de la base de données. Mais d'abord, vous devez avoir quelque chose dans la base de données qui est unique, soit une combinaison de champs, soit un identifiant unique. Dans votre cas, je peux voir deux alternatives. Exigez que les noms d'utilisateur soient uniques. Si vous avez deux John Smith, l'un d'eux doit adopter un uniquificateur - John (Big John) Smith. Ou vous avez une colonne id. Vous n'avez jamais besoin de montrer à l'utilisateur la colonne id, mais vous pouvez la trouver utile pour votre implémentation

Maintenant pour l'interface utilisateur: Vous avez une charge d'enregistrements dans la base de données, l'utilisateur veut un enregistrement particulier mais seulement partiellement connaît les données correspondantes. Vous devrez faire face à une certaine incertitude et interagir avec l'utilisateur.

What do you know? 

His name is Davdi and his father's name is Gordon 

(search) We don't have anyone called Davdi 

Oh I meant His name is David and his father's name is Gordon 

OK, we've got 10 records that match that, which one do you want? 

This one (user picks from list - behind the scenes we know the unique id) 

Maintenant, en fonction de la base de données que vous utilisez, vous pouvez aller plus loin. Par exemple, l'utilisateur peut utiliser des caractères génériques ou des expressions rationnelles pour spécifier ce qu'ils veulent dire. Mais le langage de requête que vous utilisez devra prendre en charge de telles choses.

His name is Dav* (can't remember if it's Dave or David) 

Certaines bases de données ont des capacités de type "Sounds like". Donc "Lewis" correspondrait à "Louis" et "Lewes" et même "Lou". Si vous voulez vraiment être utile, vous pouvez avoir besoin de ce genre de capacité.

Questions connexes