2009-04-26 27 views

Respuesta

11

Qué le pasa a los dos? Si el valor está definido o modificado por el usuario, definitivamente enum no será adecuado.

Si los valores son estrictamente variables (como el género), puede tenerlos como enums para una fácil referencia en la aplicación y también en el DB como una tabla separada para forzar claves externas y como referencia.

0

Si la lista es lo suficientemente estable como para usar una enumeración, entonces usaría una enumeración en su código más una tabla en la base de datos (conviértala en una clave externa para la coherencia de los datos).

6

Depende. Enumeré algunos pros y contras para cada enfoque a continuación. En general, prefiero las enumeraciones si la aplicación necesita usar un valor para tomar decisiones. Como mencionó Mehdrad, puede usar ambos enfoques pero requiere un esfuerzo extra para mantener las listas sincronizadas.

Las tablas de consulta:

  • La integridad referencial se puede hacer cumplir través de claves externas
  • fácil añadir o eliminar los valores existentes
  • tabla se puede extender a añadir campos adicionales (banderas activas, etc.)
  • Requiere clase adicional si usa objetos comerciales
  • Valor y descripción fáciles de usar en los informes

Enum:

  • Comprobar restricción puede exigir la integridad de datos
  • La mejor opción si el código tiene que utilizar el valor de ramificación (por ejemplo, x == == SalesType.Web vs x "WEB")
  • Requiere versión de software para cambiar los valores
  • no puede mostrar descripción de las consultas SQL (sin el caso)
  • enumeración no puede ser apropiado para su visualización en la interfaz de usuario (hay soluciones)
0

En mis proyectos, utilizo mi solicitud dbscript para generar C# consts de base de datos, por lo que siempre coincide con los valores de código db.

Por supuesto, sólo se necesita tener las enumeraciones de C# si su código hace algo específico dependiendo del valor del campo Tipo.

Cuestiones relacionadas