mageekblog - Mot-clé - insertLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearParlons un peu d'ergonomie...urn:md5:8a244685ce73a8235b43cd76de01cab12010-04-06T16:27:00+02:002010-06-09T18:31:06+02:00mageekguyRéfléxionsergonomieignoreinsertsgbdsqlunicité <p>Sur l'un de mes projets, j'ai dans ma base de données une table qui ressemble à cela :</p>
<table style="border: 1px solid rgb(0, 0, 0);">
<tbody><tr><th>Colonne</th><th>Type</th></tr>
<tr><td>id</td><td>Entier non signé</td></tr>
<tr><td>Name</td><td>Chaîne de caractères</td></tr>
<tr><td>value1Min</td><td>Flottant non signé</td></tr>
<tr><td>value1Max</td><td>Flottant non signé</td></tr>
<tr><td>value2Min</td><td>Flottant non signé</td></tr>
<tr><td>value2Max</td><td>Flottant non signé</td></tr>
<tr><td>value3Min</td><td>Flottant non signé</td></tr>
<tr><td>value3Max</td><td>Flottant non signé</td></tr>
</tbody></table>
<p>J'ai de plus deux index qui permettent de garantir respectivement l'unicité sur la colonne <code>Name</code> et les 6 colonnes <code>value*</code>.</p>
<p>En effet, je ne dois pas avoir dans ma table plusieurs enregistrements avec le même nom et/ou avec les mêmes valeurs.</p>
<p>Du coup, j'utilise la directive <code><a href="http://dev.mysql.com/doc/refman/5.0/fr/insert.html">IGNORE</a></code> dans ma requête d'insertion en <abbr title="Structured Query Language">SQL</abbr> pour ne pas générer d'erreur au niveau du <abbr title="Système de Gestion de Base de données">SGBD</abbr>.</p>
<p>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 ?</p>
<p>En effet, son but est forcément de créer cet enregistrement.</p>
<p>Est-il alors pertinent, ergonomiquement parlant, de l'informer que l'enregistrement existe déjà via un message d'erreur ou une alerte ?</p>
<p>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.</p>
<p>S'il porte le même nom ou (dans le sens <a href="http://fr.wikipedia.org/wiki/OU_exclusif">XOR</a> 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.</p>
<p>Et vous, quel est votre avis ?</p>http://blog.mageekbox.net/?post/2010/04/06/Parlons-un-peu-d-ergonomie...#comment-formhttp://blog.mageekbox.net/?feed/atom/comments/104