[Php-avanzado] Hasta que punto conviene Normalizar una DB
Rama Gonzalo
ramagonzalo en yahoo.com.ar
Lun Abr 25 13:32:49 ART 2011
Sigo normalizando.. o desnormalizando ?..
Tengo un table "video" otra "serie" y otra "temporada" .
Un "video","serie" o "temporada" tienen uno o varios "títulos" (según el
idioma) y una o varias "descripciones" (según el idioma), una "serie" es
una colección de "temporadas" y una "temporada" es una coleccción de videos.
hice esto:
--tabla video--
id
pais_id
idioma_id
titulo_id (primaria)
descripcion_id (primaria)
serie_id
temporada_id (no es primaria)
---serie---
id
pais_id
idioma_id
titulo_id (primaria)
descripcion_id (primaria)
---temporada-
id
titulo_id (primaria)
descripcion_id (primaria)
serie_id
---titulo----
id (no es clave primaria) se repite tantas veces como títulos tenga un
mismo video
texto
idioma_id
---descripcion ---
id (no es clave primaria) se repite tantas veces como descripciones
tenga un video
texto
idioma_id
oiginal (buleano que indica si es el titulo orignal del video)
De esta forma.., a partir de una serie acceso a todos los videos de y
temporadas de la misma e inversamiente, desde un video puedo acceder a
toda la serie y temporadas de la serie, de la que es parte el video. No
me gusta el diseño, pero "creo" que evitar varias tablas y por ende
muchos JOIN.. y gano algo rendimiento (suponiendo que es un DB con alto
tráfico).
-----------------Otra podría ser:
---video---
id
pais_id
idioma_id
titulo_original_id (primaria)
--- serie
id
pais_id
idioma_id
titulo_original_id (primaria)
---temporada
id (primaria)
serie_id
-----titulo
id (primaria)
text
idioma_id
----descripcion
id (primaria)
text
idioma_id
---rel_video_titulo
video_id
titulo_id
--rel_video_descripcion
video_id
descripcion_id
---rel_serie_titulo (similar video)
---rel_serie_decripción (similar video)
---rel_tempora_titulo (similar video)
---rel_temporada_descripcon (similar video)
De esta forma tendría todo más normalizado, con unas 6 tablas más. Pero
¿bajaría mucho el rendimiento ?
Se podrían "quizá" fusionar las tablas titulo y descripción ,y reducir
la cantidad de relaciones.
Muchas gracias! nuevamente.
Más información sobre la lista de distribución Php-avanzado