2011-04-12 5 views
1

Je viens de découvrir que certains co_workers utilisent Enum beaucoup. Et en utilisant Enum comme une sorte de magasin de données pour certaines listes, comme la liste d'état, la liste des rôles, etc. Et je ne suis pas sûr si c'est un bon moyen de traiter ce genre de données. Je voudrais mettre des données dans la base de données et ensuite les lire dans le cache au lieu de mettre les données dans le code lui-même.Enum vs cache? Lequel est le meilleur

+1

Les types énumérés ne stockent pas de données, ils les nomment. Garder des données dans la base de données et s'y référer avec des enums est tout à fait possible, et l'un n'a aucun lien avec l'autre. L'exception serait s'il y a une autre table de base de données reliant des valeurs de code avec leurs significations. De plus, c'est assez subjectif et cela n'appartient pas vraiment ici. Une version assaini a identifié les problèmes seraient appropriés pour programmers.stackexchange.com –

+0

La valeur configurable comme les types d'animaux ou est-il fixé comme le sexe ou quarts? –

+0

Matthew: toutes sortes de données, comme les genres, comme les statuts, comme compagnies aériennes, comme pays, comme les environnements de code .... –

Répondre

0

Pour répondre à ma propre quetsion. Ce sera la bonne réponse politique "Ça dépend ...". C'est 50% -50% question. Pour les développeurs qui aiment énumérations, Enum peut être très utile et le code peut être très clair ... Pour les développeurs qui détestent énumérations, Enum est rien Const dans un autre nom et à chaque fois il y a un nouveau statut ajouté, vous devez ajouter ce nouveau statut à l'Enum, .....

1

La décision de enum par rapport à la table de base de données dépend si vous souhaitez que des valeurs supplémentaires soient ajoutées/supprimées pendant que le système est en production.

Par exemple:

Utilisez enum pour:

  • Mode de paiement (espèces, chèque ou carte de crédit)

  • fréquence de facturation (quotidienne, hebdomadaire, mensuelle, trimestrielle)

  • Sexe

  • Etat

Utilisez une table de base de données pour:

  • transporteur pour la livraison (FedEx, UPS, ???)

  • catégorie de produits (livres, musique, jeux,? ??)

  • compagnie aérienne

Questions connexes