Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/01/2011, 11:04
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: 16 años, 5 meses
Puntos: 2658
Respuesta: duda de estructura y diseño

Cita:
El problema es que una vez filtre los movimientos que le atañan a un usuario para cada una de esas filas devueltas deberé hacer una nueva consulta o dos para sacar los nombres de las cosas. Es decir que como dependiendo de cada accion las cosas que tiene que hacer son muy diferentes parece que es la unica forma.

Mi duda es: ¿Seria mejor guardar en esa tabla los movimientos de todos? o es mejor para cada usuario crear una tabla de movimientos unica solo con sus movimientos?
Hay muchas cosas a considerar si lo que realmente quieres hacer es una social network, pero por principio, si lo que vas a diseñar es el sistema que lo gestiona, no te tienes que perder de entrada en las minucias. Te estás planteando cómo lograr programar los procesos, cuando todavía no sabes qué procesos tienes que hacer...
Trata de alejarte un poco, toma una pizarra o lo que quieras, y bosqueja en un diagrama lo que esa SN tiene que mostrar y qué es lo que los usuarios deben poder hacer. Los procesos vienen después y el diseño de la base de datos viene después incluso de los procesos.
No puedes diseñar una base sin saber qué tipo de información (contenida en los procesos de los usuarios) va a contener, simplemente porque aún no has determinado que entidades participan del modelo.

Incluso, si lo que quieres es un esquema previo de cómo trabajan, para poder inspirarte y que te sirva de guía, en en cuenta que el esquema general de una SN ya está creado, no es necesario que inventes nada, simplemente que te documentes.

Un modelado general de una SN sería:



Este tipo de modelo es el que usan Bebo, BlackPlanet, FaceBook, Friendster, Google's OpenSocial, Orkut, iGoogle, LinkedIn, Live Spaces, MySpace, Slide, Twitter, TwitterVision y otros.

Documentación sobre el tema la puedes encontrar en Library of Free Data Models

Cita:
Por otro lado, y para evitar hacer todas esas consultas cada vez, se me habia ocurrido crear un xml con una estructura similar a la tabla pero ya con los nombres y todo puesto para luego solo parsearlo. El problema es que si yo hago un movimiento que hay 100 amigos que deben enterarse tendré que actualizar 1000 ficheros de golpe, haciendo que tarde mucho, mientras que de la forma de las consultas a cada usuario le tardará un poco solo.

No se, estoy bastante perdido y liado en este asunto por que alucino lo rapido que lo hace facebook con tantas cosas diferentes que tiene, y cuando yo tenga en una tabla 100,000 o 1,000,000 de registros va a ser eso eternamente lento.
Un consejo que si puedo darte es que no tienes que ponerte a pensar como "ahorrar" codificación, desarrollo, consultas, procesos. No hay en este tipo de proyectos cosas que pudeas "ahorrarte", son demasiado grandes y complejos como para plantearte atajos. Es mejor ser más ortodoxo, hacer las cosas de manual y no encontrarte que luego lo que tienes es insuficiente y tener que empezar a parchar lo que ya está siendo usado...

Buena suerte con el proyecto...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)