Tengo un número de enumeraciones en mi aplicación que se utilizan como tipo de propiedad en algunas clases.La mejor manera de almacenar valores enum en la base de datos - String o Int
¿Cuál es la mejor manera de almacenar estos valores en la base de datos, como String o Int?
FYI, también voy a mapear estos tipos de atributos usando Nhibernate con fluidez.
Código de ejemplo:
public enum ReportOutputFormat
{
DOCX,
PDF,
HTML
}
public enum ReportOutputMethod
{
Save,
Email,
SaveAndEmail
}
public class ReportRequest
{
public Int32 TemplateId
{
get { return templateId; }
set { templateId = value; }
}
public ReportOutputFormat OutputFormat
{
get { return outputFormat; }
set { outputFormat = value; }
}
public ReportOutputMethod OutputMethod
{
get { return outputMethod; }
set { outputMethod = value; }
}
}
¡No puedo creer que siquiera consideras la mitad de recomendar un enfoque que podría resultar fácilmente en corrupción de datos! ¿Solo por una preocupación imaginada por compacidad? Si la preocupación por la compacidad es tan fuerte, agrega un campo int a la enumeración. NUNCA confíes en el ordinal. Lee Effective Java. –
Realmente no veo dónde recomiendo nada para ser sincero. Solo estoy afirmando ventajas y desventajas. Aunque tiene un punto, no queriendo confiar en el valor ordinal, es posible que desee convertir ese 'fuego' en su comentario en un nivel inferior;) – pyrocumulus
@KevinBourrillion ¿Qué significa "agregar un campo int a la enumeración"? – John