Pessoal, eu queria saber qual é a melhor maneira de implementar a seguinte situação:
Vamos supor que a pessoa faça um cadastro, e alguns itens são combobox, ou seja, possuem opções já definidas como resposta. Algumas delas são de múltipla escolha (interesses) e outras de única (sexo, profissao).
No banco de dados, acredito que possa ficar assim:
USUARIO - id: int - nome: string - sexo: int - profissao: int ?INTERESSES_USUARIO
- id_usuario: int
- id_interesse: intINTERESSES
- id: int
- descricao: stringSEXO
- id: int
- descricao: stringPROFISSOES
- id: int
- descricao: string
Esta seria a melhor maneira? Eu sei que o MySQL tem umas opções de enum. Mas e quando criamos uma profissão nova, temos que mexer na tabela e no código Java, né?
E no código Java? A melhor maneira é como? Criar um VO, por exemplo, Sexo, com id e descricao? Criar um enum do Java? (Daí cai no mesmo dilema: se acrescentarmos mais uma informação ao banco de dados temos que colocar esta nova opção no enum, recompilar?) Eu uma vez eu vi um código em que o cara fazia uma classe Enumeration. Não sei se ele herdou da do Java, mas em vez de fazerenum Profissoes { ADVOGADO, MEDICO }
class Profissoes { // não lembro se herda de Enumeration
public static Profissoes ADVOGADO = new Profissoes("Advogado");
public static Profissoes MEDICO = new Profissoes("Médico");
private static int counter = 0;
private int id;
private String descricao;
public Profissoes(String desc) {
counter++;
id = counter;
descricao = desc;
}
// getters de id e descricao.
}
Não sei se existe alguma outra maneira, mas como isso é comum demais acredito que tenha algo que não precisamos mexer em dois lugares quando precisar mudar as opções, seja deletando, incluindo ou alterando-as.
Grato.
Usualmente criamos as classes e fazemos um espelho delas no banco.
Anyway, um puxão de orelhas é sempre válido
