Sur l'un de mes projets, j'ai dans ma base de données une table qui ressemble à cela :
Colonne | Type |
---|---|
id | Entier non signé |
Name | Chaîne de caractères |
value1Min | Flottant non signé |
value1Max | Flottant non signé |
value2Min | Flottant non signé |
value2Max | Flottant non signé |
value3Min | Flottant non signé |
value3Max | Flottant non signé |
J'ai de plus deux index qui permettent de garantir respectivement l'unicité sur la colonne Name
et les 6 colonnes value*
.
En effet, je ne dois pas avoir dans ma table plusieurs enregistrements avec le même nom et/ou avec les mêmes valeurs.
Du coup, j'utilise la directive IGNORE
dans ma requête d'insertion en SQL pour ne pas générer d'erreur au niveau du SGBD.
Et ma question est donc la suivante : Si un utilisateur tente de créer un enregistrement qui existe déjà dans la table, dois-je l'en informer ?
En effet, son but est forcément de créer cet enregistrement.
Est-il alors pertinent, ergonomiquement parlant, de l'informer que l'enregistrement existe déjà via un message d'erreur ou une alerte ?
Je dirais que tout dépend si l'enregistrement qui existe porte le même nom, les mêmes valeurs, ou bien le même nom et les mêmes valeurs.
S'il porte le même nom ou (dans le sens XOR du terme) les mêmes valeurs, cela pourrait être utile, alors que s'il est identique à tout point de vue, l'affichage d'une erreur me semble totalement inutile.
Et vous, quel est votre avis ?
3 réactions
1 De David - 06/04/2010, 17:01
je pense que tu as trouvé ta réponse ;). C'est tres basique ce que je vais dire mais l'utilisateur ne doit avoir une alerte que s'il a besoin de l'information, sinon c'est polluant...
Je ne connais pas le projet, mais à priori si l'enregistrement existe déja (strictement le meme), a-t-il besoin de le savoir? Sinon effectivement rien ne sert de le signaler. Dans l'autre cas de figure (enregistrement presqu'identique mais pas tout à fait), ça pourrait en effet servir à mieux qualifier la base de données.
Je ne pense pas t'avoir beaucoup aidé m'enfin...
2 De Ludo - 07/04/2010, 08:28
A mon avis, tout dépend de l'usage de ces valeurs dans ton application. Est-il intéressant pour l'utilisateur de savoir que les données qu'il veut insérer sont déjà présentes? Si aucune action de sa part ne doit en découler, alors effectivement lui afficher une "erreur" à proprement parler me semble un peu inutile.
Ceci dit, que se passe-t-il dans le cas d'une insertion correcte? L'utilisateur reçoit-il un message de confirmation? Dans ce cas, que lui afficher s'il tente d'insérer un doublon? Pour respecter cette logique, il faudrait lui afficher un message également, mais... le même ? Quitte à lui donner une info, autant lui dire alors que sa saisie a été ignorée car déjà présente, non ? Sans pour autant taper dans le bold rouge clignotant
3 De syndrael - 07/04/2010, 10:15
Dans la mesure où il ne semble pas utile de connaitre qui a créé l'enregistrement et quand, c'est à mon sens inutile de le dire.
C'est créé, c'est créé.. ça tombe bien c'est justement ce que voulait l'utilisateur.
Bonne journée
S.