Usar Listas de valores ou tabelas?

Oi pessoal, gostaria de saber o que vcs usam qdo precisam usar combox por exemplo e colocar valores do tipo:

Ativado
Desativado
Em fase de ativaçao

ou por exemplo:

Aceitado
Nao Aceitado
Iniciado
Finalizado

Que tipo de logica que vcs usam para colocar esses tipos de valores em tabelas ou listas de valores (LOV, que de qualquer jeito é colocado dentro de tabelas mas todos os valores sao colocados em uma tabela sò.).
Deu pra entender a pergunta?
Valeu!

Desculpe cara,

Eu não entendi a pergunta… vc quer colocar um combox e não sabe como colocar as opções? É isto?

ComboBoxModel

http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/ComboBoxModel.html

Acho q n expliquei direito. N é duvida de sintaxes java, mas de metodologia de desenvolvimento. Vou fazer exemplos pra ver se consigo explicar melhor.
Digamos que eu tenha q fazer uma form e essa form eu tenho que colocar uma combox e nessa combox eu tenho q colocar valores do tipo.
Ativo
Inativo
Em fase de ativaçao

e tenho q fazer uma outra combox com os valores…

Aceito
Nao aceito
anulado

Soluçao 1

  • colocar esses valores fixados no codigo (argh!!!).

Soluçao 2

  • Colocar em uma tabela de q se chama TBL_ESTADOS_DE_ATIVACAO e TBL_ESTADO_APROVATIVO

Soluçao 3

  • Colocar em uma tabela de valores.
    Pra quem nao conhece, isso significa q todos os valores para combox eu vou colocar dentro dessa tabela. Por exemplo, o oracle application usa a LOV (list of values).
    Para o meu exemplo essa tabela tera’ os seguintes campos e valores.

ID-----COD-----DESCRIPTION---------------------ENABLED----------TIPO_VALOR
1-----ATI--------ATIVO ------------------------------Y------------------ESTADO_ATIVACAO
2-----INA------- INATIVO-----------------------------Y-----------------ESTADO_ATIVACAO
3-----FASE------ EM FASE DE ATIVAçAO------------Y-----------------ESTADO_ATIVACAO
4----ACET-------ACEITO------------------------------Y-----------------ESTADO_APROVATIVO
5----INAC-------NAO ACEITO------------------------Y-----------------ESTADO_APROVATIVO
6----ANUL-------ANULADO----------------------------Y-----------------ESTADO_APROVATIVO

Essas sao as minhas ideias, gostaria de saber quais sao as melhores escolhas no ponto de vista de vcs.

cada caso é um caso… (a regra geral é que não existe uma regra geral, ou como o povo chama aqui no forum, bala de prata).

a minha “opinião”, é que

quando for alguma coisa que dificilmente vai mudar, uma aplicação pequena e estatica ao menos quanto a essa regra de negócio, crie constantes em uma classe java, armazene e utilize o valor destas constantes;

porém quando for alguma aplicação maior e/ou mais dinâmica, onde as opções possivelmente acabem variando, ai você vai ter que criar ma tabela no banco de dados, contendo o id do list do html, o value, uma descriçãozinha, sua aplicação vai ter que ler toda essa tabela para popular a tag de combobox do seu framework MVC favorito (que normalmente tem alguma tag na qual você usa uma lista de objetos e ele inclui a lista desses objetos combobox), e ao armazenar os dados do formulario em uma tabela, o campo que pegar o valor deste combobox preferivelmente deve apontar para a tabela que armazena as possiveis opções no combobox… Claro que isso da um pouco mais de trabalho, é uma solução mais versatil, por isso mesmo que indico fazer isso só quando houver necessidade…

Se for uma lista que deva mudar pouco, como Ativo e Inativo o mais adequado, a meu ver, é o uso de enums.

Dê uma olhada em: http://download.oracle.com/javase/tutorial/java/javaOO/enum.html e http://download.oracle.com/javase/1.5.0/docs/guide/language/enums.html.

Eu prefiro a solução 2, cada tipo tem sua tabela no banco em vez de um tabelão com todos os tipos.
pq o banco fica mais normalizado.

Eu tb prefiro a soluçao 2, porém é mto comum que eu entre em projetos onde a analise foi mal feita ou que os usuarios sempre pedem mais coisas. Por isso, qdo n tem uma analise bem feita ou qdo eu sei que o cliente é daqueles que “mudam as cartas sobre a mesa” eu uso as listas de valores.
E se muda um valor ou se é adicionado outro valor uma insert ou update ajuda a resolver o problema com mais facilidade. Ja as constantes, eu nunca usei para essa finalidade entaum n posso opnar.

Gostaria de levantar essa questao novamente para ouvir mais opinioes…
Valeu!!!