Eventuali duplicati:
Schema for a multilanguage databaseCome memorizzare dati multilingue?
Sto costruendo un'applicazione web molto impegnato che ha dati multilingue. Tutti questi dati sono memorizzati in un database MySQL. Qual è il modo migliore per archiviare questi dati? Ho alcune ipotesi però:
- colonne separate nella tabella per ogni lingua (come title_en, title_fr)
- tavoli separati per ogni lingua (come pages_en, pages_fr)
- tavola a croce per le traduzioni (avendo un id nella tabella delle pagine e con questo id collegato in una tabella di traduzione dove ci sono più colonne come trans_en, trans_fr)
- con dati non multilingue in una tabella per pagine di esempio e traduzioni in una tabella per lingua (pagine_it, pagine_fr)
- altro?
Ok, vedo un problema con la seconda soluzione perché se si aggiunge una nuova lingua e si crea una nuova tabella, tutte le colonne non multilingue devono essere copiate in questa nuova tabella. Ma è probabilmente più veloce della prima soluzione perché la tabella è di dimensioni più ridotte. –
La terza soluzione rende le tabelle primarie molto pulite, ma è difficile fare la manutenzione manuale e la tabella di traduzione sarà killer grande –
La seconda soluzione è facile da espandere in nuove lingue (basta aggiungere colonne) ma può ancora diventare molto grande se le lingue sono drasticamente espandi) ... Un po 'bloccato qui ... –