2012-07-25 21 views
6

Duplicar posible:
Schema for a multilanguage database¿Cómo almacenar datos multilingües?

Estoy construyendo una aplicación web muy ocupado que tiene datos multilingües. Todos estos datos se almacenan en una base de datos MySQL. ¿Cuál es la mejor manera de almacenar esta información? Tengo algunas conjeturas aunque:

  1. columnas separadas en la tabla para cada idioma (como title_en, title_fr)
  2. tablas separadas para cada idioma (como pages_en, pages_fr)
  3. tabla cruzada para traducciones (teniendo una identificación en la tabla de páginas y tener esta identificación vinculada en una tabla de traducción donde hay varias columnas como trans_en, trans_fr)
  4. tener datos no multilingües en una tabla para páginas de ejemplo y traducciones en una tabla por idioma (pages_es, pages_fr)
  5. otro?
+0

Bien, veo un problema con la segunda solución porque si agrega un nuevo idioma y crea una nueva tabla, todas las columnas no multilingües deben copiarse a esta nueva tabla. Pero es probablemente más rápido que la primera solución porque la tabla es más pequeña en tamaño. –

+0

La tercera solución hace que las tablas primarias estén muy limpias, pero es difícil hacer el mantenimiento manual y la tabla de traducción será genial. –

+0

La segunda solución es fácil de expandir a nuevos idiomas (solo agrega columnas) pero puede ser muy grande si los idiomas son drásticamente ampliar) ... Un poco atascado aquí ... –

Respuesta

1

Si tuviera que hacer un sitio multilingüe, entonces yo diseñaría el PP de la siguiente manera:

enter image description here

Cada página de la aplicación puede tener varios idiomas. Solo tiene que filtrar en la identificación del idioma para obtener el idioma deseado para la página.

Cuestiones relacionadas