Pregunta

Estoy tratando de diseñar algunas tablas para almacenar algunos datos, que luego deben convertirse a diferentes idiomas. ¿Alguien puede proporcionar algunas "mejores prácticas"? o directrices para esto?

Gracias

¿Fue útil?

Solución

Supongamos que tiene una tabla de productos que se parece a esto:

Products
----------
id
price

Products_Translations
----------------------
product_id
locale
name
description

Entonces solo te unes en product_id = product.id y where locale = 'en-US'

por supuesto, esto tiene un impacto en el rendimiento, ya que ahora necesita una combinación para obtener el nombre y la descripción, pero permite cualquier cantidad de configuraciones regionales más adelante.

Otros consejos

Creo que sería útil contar con más información sobre lo que está haciendo. ¿Puede dar algunas muestras de los datos? ¿Y a qué te refieres con dinámico? Que se insertarán muchos datos a lo largo del tiempo y muchos cambios en los datos o que los datos solo necesitan estar disponibles durante un breve período de tiempo.

En general, probablemente debería mirar a un padre con datos comunes no localizados, y una tabla secundaria con los datos localizados y la clave de idioma. Si, por dinámica, quiere decir que cambia con frecuencia, puede querer echar un vistazo al uso de desencadenantes y algo así como un indicador de 'traducción requerida' para marcar las cosas que se necesitan traducir después de que se realice un cambio.

¿Puede describir la naturaleza de los 'datos dinámicos'?

Una forma de implementar esto sería tener 3 tablas diferentes:

  • Tabla de idiomas
    • Esta tabla almacenaría el idioma y una clave:
    [1, English], 
    [2, Spanish]
  • Tabla de definición de datos
    • Cuando se ingresan los datos dinámicos, haga un registro en esta tabla con un identificador de los datos:
      [1, 'Data1'], 
      [2, 'Data2']
  • Data_Language Table
    • Esta tabla vinculará el idioma, la definición de los datos y la traducción
      So: [Data_Language, Data_Definition, Language, Translation]
          [1, 1, 1, 'Red']
          [2, 1, 2, 'Rojo']
          [3, 2, 1, 'Green']
          [4, 2, 2, 'Verde']

          etc ...

Cuando se ingresan los datos dinámicos, cree el registro de 'Inglés' predeterminado y luego tradúzcalo a su gusto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top