Nella mia applicazione ho un numero di enumerazioni che vengono utilizzate come tipo di proprietà in alcune classi.Il modo migliore per memorizzare i valori enum nel database - String o Int
Qual è il modo migliore per memorizzare questi valori nel database, come String o Int?
FYI, mapperò anche questi tipi di attributo utilizzando Nhibernate fluente.
codice di esempio:
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; }
}
}
Non riesco a credere che potresti anche considerare la metà di raccomandare un approccio che potrebbe facilmente portare alla corruzione dei dati! Appena fuori da una preoccupazione immaginata per la compattezza? Se la preoccupazione di compattezza è così forte, aggiungi un campo int all'enum! MAI fare affidamento sull'ordinale. Leggi efficace Java. –
Davvero non vedo dove sto raccomandando nulla per essere onesti. Sto solo affermando vantaggi e svantaggi. Sebbene tu abbia un punto, non volendo contare sul valore ordinale, potresti voler trasformare quel "fuoco" nel tuo commento in una tacca;) – pyrocumulus
@KevinBourrillion Che cosa significa "aggiungere un campo int all'enum" significa? – John