[Php-avanzado] Normalización! Re: consulta Diseño DB .
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Abr 25 11:58:04 ART 2011
Hola Gonzalo,
para este caso, la normalización dice que tenés que crear una tabla
para cada relación, que no es ninguna de las dos que planteás.
Por ejemplo:
Noticias:
id
texto
Imagen:
id
archivo
Comentarios:
id
texto
ComentariosNoticias:
id
id_noticia
id_comentario
ComentariosImagenes:
id
id_imagen
id_comentario
etc
Fijate que normalizando, si agregás una nueva cosa, como por ejemplo
Películas, no tenés que tocar la estructura (y por ende el código) que
maneja las otras para que tengan Comentarios.
Se parece a tu 1), pero no lo es: esta está en 3FN ;-)
Saludos!
El lun, 25-04-2011 a las 10:16 -0300, Rama Gonzalo escribió:
> Hola a todos, tengo un sistema que posee, noticias, galerias de fotos,
> biografias, reviews, y todos estos elementos pueden recibir
> comentarios, por lo que tengos la siguientes tablas:
> notice ,gallery ,images, biography, reviews, comment.
> El problema me surge al tener que relaciones la tabla "comment" con cada
> uno de estas tablas, por lo que planteo 2 alternativas por el momento:
>
> 1º)
> a) Crear una tabla entidad "entity" que contenta el tipo
> (biografia, noticia, review, foto, etc)
> b) Crear una tabla rel_comment_entity que contenga:
> - id (id del comentario)
> - entity_id
> - element_entity_id (sería el id de la noticia,foto o review que
> se ha comentado)
>
>
>
> 2º) Alternativa:
> En la tabla "comment" agregar una columna para cada tabla:
> -----table comment------
> - id,
> - text, (contenido del comentario)
> - notice_id,
> - image_id,
> - review_id
> - biography_id
>
> La 2º me parece bastante bestia pero podría ser... qué otras
> alternativas hay.. ? o de estas cual implementarían ?
>
> Gracias.
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
--
Leonardo Tadei
leonardot en pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
Más información sobre la lista de distribución Php-avanzado