Page 1 sur 1

Conception : énumérations ou tables annexes ?

Posté : 25 août 2010, 15:59
par anne 22
Bonjour,

Je reprends une base de données faite sous Php/MySQL, sans être une spécialiste ni de ce langage, ni de la programmation en général.

Dans ce projet, les champs pouvant accueillir seulement certaines valeurs précises (genre choisir "M","Mme", ou "Melle" dans une liste d'options) sont gérés au moyen d'énumérations dans les tables. Les valeurs sont stockées en dur.

Mon commanditaire souhaite un outils permettant aux utilisateurs de modifier eux=mêmes les énumérations.
Mais toutes les requêtes sont faites avec des valeurs en dur. Par ex : pour chercher tous les utilisateurs du genre masculin, c'est écrit : SELECT ... WHERE genre = 'M.'

Si jamais l'utilisateur modifie l'énumération et change "M." pour "M" ou "m", toutes les requêtes basées sur valeurs en dur foirent. Bref, du coup, le système ne tient plus debout si les énumérations sont modifiées sans en tenir compte, et j'envisage de passer à une gestion avec autant de tables annexes qu'il y avait d'énumérations.

Mais ça me semble hyper lourd de tout modifier (gestion des listes,affichage et validation des formulaires), il y a pas mal d'énumérations dans ce projet.

Que feriez-vous à ma place ?
Comment gérer les requêtes ? Si j'ai besoin de savoir si le champ tartempion contient "rouge", "bleu" ou "vert", comment procéder ? Faut aller chercher dans la table annexe le n° d'enregistrement correspondant, à chaque fois ?

Pouvez-vous m'éclairer svp ?

Merci
Anne 22

Re: Conception : énumérations ou tables annexes ?

Posté : 25 août 2010, 16:22
par AoSiX
La bonne solution me semble être une table externe effectivement, cela permet de changer l'intitulé des énumération, sans pour autant compromettre toute l'application.

par contre il y a un travail de fond à réaliser pour cette transformation, ce sera un coup sur un mini chantier sur lequel vous devrez passer avec cette solution...

Re: Conception : énumérations ou tables annexes ?

Posté : 25 août 2010, 18:25
par Invité
Oui, merci Julien, je crois que c'est la solution la plus sage ... mais aussi la plus longue, pfff !