none
Choix de sémantique des listes finies (civilité): BDD avec FK ou enum dans le code application RRS feed

  • Question

  • Bonjour,

    Je vais reprendre l'exemple de la civilité d'une personne.

    En terme de conception :

     

    1) definir une colonne sans contrainte dans la table Personne et utiliser un enum dans le code C# pour definir Mme, Mlle, M. ?

    colonne en tinyint (nullable) dans la table Personne

    Enum dans le code Mme=0, Mlle=1, M.=2

     

    2) définir une table Civilite avec les valeur 0, 1, 2 et mettre une foreign key entre Personne et Civilite

    Sachant que dans ce cas, il est sage de définir un enum également dans le code.

    Cette 2eme solution me semble plus complexe a gérer (surtout si on fait du EF3.5).

     

    Quelles sont vos habitudes ou pratique actuelle a ce sujet ?

     

     


    Sinn'
    vendredi 25 juin 2010 13:31

Réponses

  • Bonsoir,

    Je dirais que mon critère de choix serait plutôt l'évolutivité potentielle de cette liste et/ou la présence de règles de gestion particulières à chacune de ces valeurs.

    Selon le type d'appli (par exemple pour une application commerciale avec du "mailing"), je dirais #2 dans ce cas car les civilités semblent être relativement évolutives (par exemple demain si j'ai l'armée comme client, je veux pouvoir mettre "Colonel" même si je ne l'ai prévu et sans avoir à recompiler l'appli). Je ne vois pas l'intérêt de l'enum, il ne me semble pas qu'il y ait souvent des règles particulières associées à chacune de ces civilités.

    Je dirais #1 lorsque la liste est vraisemblablement figée (par exemple les différents status d'une facture seraient sans doute définis une fois pour toute) et là l'enum sera en plus utile pour coder les règles de gestion associées à chacun de ces états.

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse Alex Petrescu lundi 5 juillet 2010 08:16
    vendredi 25 juin 2010 22:05