Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/10/2009, 15:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: Necesito que me respondas como harias lo siguiente sin perder integridad r

No lo conviene hacerlo así porque eso solo le permitiría UN comentario por foro, perfil, video y album.

El tema es centrarte en la imagen del modelo: Todo lo que puedes agregar pertenece como entidad principal al perfil. Los videos, fotos o álbumes pertenecen al perfil porque dependen de él para existir. No hay nada que puedas agregar a Facebook sin primero pertenecer a Faceboook, al menos como usuario (visitantes no pertenecientes son usuarios "anonimo", con alias, y sus inclusiones pertenecen de todos modos al perfil).
Analicemos sintácticamente las relaciones: Un perfil, para existir requiere como mínimo de un username y clave. Eso es todo. Una foto requiere del id de Perfil, un comentario al perfil, depende del perfil; un comentario a una foto, pertenece a la foto y a través de ella al perfil; un video y su comentario tienen la misma relación, pero el comentario es de un video, no de la foto.
Cuando analizamos así, veremos que los comentarios de fotos, videos, albumes o perfiles son entidades débiles dependientes de otra que puede ser fuerte, en el caso de la entidad Perfil, o débil como en el caso de la Foto.
Cuando eso se hace evidente, te das cuenta que no hay otra forma de mantener la integridad referencial que hacer una tabla de comentarios por cada una de esas otras tablas... aunque eso requiera cuatro tablas más.

Eso sería respetar el modelo.

Es posible, sin embargo, hacer otros diseños, pero ninguno de ellos será más eficiente, porque tendrás que construir relaciones más complejas, con más campos o discriminantes muy elaborados para mantener la integridad y consistencia, cosa que al final complicará las cosas en la aplicación, al momento de insertar un simple comentario...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)