none
Dúvida Enum x Tabela de Domínio RRS feed

  • Pergunta

  • Boa noite a todos. Estou desenvolvendo um sistema para cadastro de projetos. Ainda estou na fase de modelagem,  e tenho uma dúvida: Tenho a tabela de Projetos e também a sua classe. Do ponto de vista da orientação a objetos, seria melhor eu utilizar alguma estrutura como o enum para armazenar na aplicação os possíveis status dos projetos(ativo, pausado, cancelado, finalizado) ou ter uma tabela de domínio com essas informações e criar uma classe para ela na aplicação para trazer estes dados?Qual situação seria melhor para se trabalhar com um mapeamento objeto-relacional, como o nhibernate por exemplo? Desde já agradeço a atenção. 
    sexta-feira, 22 de julho de 2011 02:30

Respostas

  • Olá Paulo,

    Se os valores forem raramente alterados utilize Enum sim com NHibernate, muito mais simples e por não ter uma tabela envolvida fica obviamente mais rápido.

    Exemplo de enum:

     

     public enum QuotationStatus : byte
     {
      NotConfirmed = 0,
      Confirmed = 1,
      Approved = 2,
      Unapproved = 3,
      BudgetSubmitted = 4,
      Refused = 5
     }
    

    Exemplo de mapeamento no NHibernate usando esse enum:

     

     

      <property column="QuotationStatus" type="Byte" name="QuotationStatus" not-null="true" />
    
    

    Exemplo de como fica no banco de dados para incluir essa coluna: (usando TSQL)

     

     

    ALTER TABLE CompanyQuotation
    Add QuotationStatus tinyint not null default 0
    

     Espero ter ajudado, até mais, abraços


    Tornar o simples complicado é facil, tornar o complicado simples é criatividade, vontade e conhecimento
    sexta-feira, 22 de julho de 2011 17:50