Quando utilizar enum e como os dados são salvos no banco, como tem o jpa, acho que abstrai, mas se eu tivesse que criar um banco com mysql, que estrutura é utilizada?
Quando utilizar enum e como os dados são salvos no banco, como tem o jpa, acho que abstrai, mas se eu tivesse que criar um banco com mysql, que estrutura é utilizada?
O MySQL suporta um tipo nativo chamado ENUM, que é uma ótima maneira de armazenar enums diretamente. Aqui está como funciona:
Estrutura no MySQL:
CREATE TABLE pedidos (
id INT AUTO_INCREMENT PRIMARY KEY,
status ENUM('PENDENTE', 'EM_PROCESSO', 'CONCLUIDO') NOT NULL
);
O MySQL armazena os valores como inteiros internamente (um índice que começa em 1), mas o valor real é exibido como string.
Valores inválidos não podem ser inseridos diretamente, o que ajuda a proteger os dados.
Se você quiser mais flexibilidade ou portabilidade entre bancos de dados, pode usar tipos como VARCHAR ou INT.
No código, você define um enum e usa os valores numéricos para armazenar os dados no banco.
Independência do banco de dados. Facilita alterações no conjunto de valores. O banco armazena apenas inteiros, ocupando menos espaço.
Exige mais lógica no código para mapear os valores.