Ho un database SQLite nella mia app per Android con una tabella "Domanda", tra gli altri. Quella tabella contiene dati "predefiniti" o "precaricati" (in questo caso le domande poste dall'app).
Alcune delle sue colonne sono dati "tecnici" o "interni" da utilizzare dietro le quinte - come il numero di punti che vale la domanda, il tipo di utente che può rispondere, ecc. - mentre altri sono dati testuali che vengono presentati all'utente (es. Titolo, Descrizione, ecc.).
Ora, ho intenzione di lasciare che la mia app sia di tipo internazionalizzabile (traducibile), quindi penso che:
-
Invece di seguire quelli che sembrano essere gli "approcci standard" per la progettazione di DB multilingue, creando diverse colonne per gli attributi traducibili (es. name_en, name_es, ...) o una tabella separata in cui ogni riga rappresenta una traduzione dell'oggetto di base ;
-
... Potrei semplicemente mantenere i valori per quegli attributi traducibili nella mia risorsa
R.Strings
e avere la mia classe DatabaseHelper recuperare il testo da lì, costruendo il nome della risorsa basato, ad esempio, nell'ID della domanda (ad esempio q1_name, q2_name, q1_description, ...). In questo modo avrei potuto avere diverse stringhe di R. e l'aiutante di DB avrebbe letto da quello giusto.
Sono un po 'incerto su questo approccio e sono curioso di sapere se questa è una cattiva pratica e / o mi manca qualsiasi potenziale inconveniente.