Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Campos multilíngues em tabelas de banco de dados


Eu tive que fazer isso uma vez... texto multilíngue para algumas tabelas... não sei se encontrei a melhor solução, mas o que fiz foi ter a tabela com as informações agnósticas de idioma e depois uma tabela filho com todos os campos multilíngues. Pelo menos um registro era necessário na tabela filha, para o idioma padrão; mais idiomas podem ser adicionados posteriormente.

No Hibernate você pode mapear as informações das tabelas filhas como um Map e obter as informações para o idioma desejado, implementando o fallback no seu POJO como você disse. Você pode ter diferentes getters para os campos multilíngues, que chamam internamente o método de fallback para obter o objeto filho apropriado para o idioma necessário e, em seguida, apenas retorna o campo obrigatório.

Essa abordagem usa mais tabela (uma tabela extra para cada tabela que precisa de informações multilíngues), mas o desempenho é muito melhor, assim como a manutenção, acho...