Duda en diseño bbdd multidioma

21/01/2004 - 11:32 por Elena | Informe spam
Hola grupo, quería exponeros una duda y a ver si me podéis ayudar.
Al diseñar una base de datos multidioma se me presentan dudas de cómo estará
mejor el diseño, os pongo dos ejemplos de la base de datos con sus tablas y
Claves primarias(CP) .

1)En este diseño utilizo claves primarias con 2 campos:
Tablas:
Idioma(IdIdioma(CP,Autonumérico),Nombre)
Categoria(IdCategoria(CP),IdIdioma(CP), Nombre, )
Contenido(IdContenido(CP), IdIdioma(CP),IdCategoria, Titulo,Texto,.)
ContenidoImagen(IdContenidoImagen(CP,Autonumérico),IdContenido,IdIdioma,IdIm
agen,..)
Imagen(IdImagen(CP,Autonumérico),Imagen)
Relaciones:
1:N Idioma-Categoria
1:N Categoria-Contenido
1:N Contenido-ContenidoImagen
N:1 ContenidoImagen-Imagen

2)En este diseño utilizaría como clave primaria un campo autonumérico:
Idioma(IdIdioma(CP,Autonumérico),Nombre)
Categoria(IdCategoria(CP,Autonumérico),IdIdioma, Nombre, )
Contenido(IdContenido(CP,Autonumérico), IdCategoria, Titulo,Texto,.)
ContenidoImagen(IdContenidoImagen(CP,Autonumérico),IdContenido,IdImagen,..)
Imagen(IdImagen(CP,Autonumérico),Imagen)

Gracias y un saludo
 

Leer las respuestas

#1 Javier Loria
21/01/2004 - 17:16 | Informe spam
Hola Elena:
Una alternativa es:
a) Utilizar para el "ID" del idioma algun estandard general. En
principio te recomendaria usar el RFC 1766
http://www.faqs.org/rfcs/rfc1766.html, este un formato que es algo como:
es-ES ==>Espanol de Espana.
es-CR ==>Espanol de Costa Rica
en-US ==>Ingles de Estados Unidos
Al utilizar una llave primaria natural sera mas facil integrar tu
aplicacion con otras, (ejemplo Windows, Internet Explorer, .NET Framework,
Commerce Server, etc). Ya que estos sistemas utilizas este estandard.

b) Una de 2 Alternativas:
Opcion 1==>Categoria (IDCategoria (CP), NombreDefault, )
CategoriaIdioma (IDCategoria (CP), IdiomaTag(CP),
NombreenIdioma)
Opcion 2 ==>Categoria (IDCategoria (CP), )
CategoriaIdioma (IDCategoria (CP), IdiomaTag(CP,
NombreenIdioma)

La opcion 2 es estrictamente hablando mejor, pero exige que de forma
procedimental exijas que SIEMPRE exista por lo menos el nombre para cada
fila de categorias en el idioma default. En la opcion 1 es mas sencillo
implementar esta condicion.

Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Elena escribio:
Hola grupo, quería exponeros una duda y a ver si me podéis ayudar.
Al diseñar una base de datos multidioma se me presentan dudas de cómo
estará mejor el diseño, os pongo dos ejemplos de la base de datos con
sus tablas y Claves primarias(CP) .

1)En este diseño utilizo claves primarias con 2 campos:
Tablas:
Idioma(IdIdioma(CP,Autonumérico),Nombre)
Categoria(IdCategoria(CP),IdIdioma(CP), Nombre, )
Contenido(IdContenido(CP), IdIdioma(CP),IdCategoria,
Titulo,Texto,.)



ContenidoImagen(IdContenidoImagen(CP,Autonumérico),IdContenido,IdIdioma,IdIm
agen,..)
Imagen(IdImagen(CP,Autonumérico),Imagen)
Relaciones:
1:N Idioma-Categoria
1:N Categoria-Contenido
1:N Contenido-ContenidoImagen
N:1 ContenidoImagen-Imagen

2)En este diseño utilizaría como clave primaria un campo autonumérico:
Idioma(IdIdioma(CP,Autonumérico),Nombre)
Categoria(IdCategoria(CP,Autonumérico),IdIdioma, Nombre, )
Contenido(IdContenido(CP,Autonumérico), IdCategoria,
Titulo,Texto,.)



ContenidoImagen(IdContenidoImagen(CP,Autonumérico),IdContenido,IdImagen,..)
Imagen(IdImagen(CP,Autonumérico),Imagen)

Gracias y un saludo

Preguntas similares