Eviter la redondance

Eléphanteau du PHP | 24 Messages

02 oct. 2006, 18:52

Bonjour,

J'essaie de concevoir une base de données pour une association avec MySql.

Dans une table "A", je stocke la civilité ("madame", "monsieur", "mademoiselle") pour créer une liste de choix avec Php en vue de la saisie via un formulaire.

Dans une table "B", je veux stocker l'identité des membres de l'association avec les champs civilité ("madame", "monsieur", "mademoiselle"), prénom, nom, adresse, téléphone...

A l'origine, je pensais saisir en "clair" dans ma table "B" la civilité.

Néanmoins, cette information est redondante. D'où ma question : est-il intéressant de lier les deux tables en termes

de performance en créant un identifiant de civilité ? En effet, je ne suis pas sûr qu'en terme de performances il soit plus judicieux de saisir l'identifiant que la civilité en "clair" dans ma table "B".

J'espère ne pas avoir été confus.

Merci pour votre attention et pour votre aide.

Cordialement,

I.

Mammouth du PHP | 19672 Messages

02 oct. 2006, 19:07

Je dirais que tu peux stocker directement la civilité dans un champ de type ENUM de la table B et oublier la table A. Ce champ ne pourra pas avoir d'autres valeurs de toutes façons et s'applique à toutes les personnes. En outre, chaque personne ne peut avoir qu'une et une seule valeur s'appliquant à elle, même si par exemple une "mademoiselle" devient un jour "madame" auquel cas une simple requête UPDATE modifiera la valeur, mais tu ne pourras pas appliquer une seconde valeur de ce même champ à quelqu'un : on ne peut en même temps être l'un ET l'autre. Donc il n'est pas logique de l'avoir dans une autre table.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: