Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Timeline de actividad y movimientos

Estas en el tema de Timeline de actividad y movimientos en el foro de Mysql en Foros del Web. Buenas tardes. Quería comentarles una duda que tengo. Estoy creando una aplicación que crea movimientos cada vez que un usuario hace algo. Básicamente por el ...
  #1 (permalink)  
Antiguo 30/10/2012, 22:41
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Timeline de actividad y movimientos

Buenas tardes.

Quería comentarles una duda que tengo. Estoy creando una aplicación que crea movimientos cada vez que un usuario hace algo. Básicamente por el momento solo pueden modificar datos y seguir a personas, tb hacerse amigos. Los datos puede elegir el nivel de privacidad (y esto es importante).

Tengo una tabla llamada activity que consta de un campo action donde dependiendo que hace el usuario le pone un un numero. Las acciones que se pueden hacer son

1. Crea un registro en la tabla "information"
2. Actualiza un registro en la tabla "information"
3. Elimina un dato en la tabla "information"
4. Pide acceso a una información
5. Te da acceso a un resgistro de la tabla information
6. Sigue a una persona
7. Quiere ser amigo de alguien
8. Es amigo de una persona

Despues hay un campo que es element_id que sirve para identificar lo que se ha cambiado dependiendo el tipo de action.

Aquí tienen una imagen del diseño de la base de datos.
http://widplay.org/tests/db.jpg

Pero el problema llega al crear un listado de toda la actividad que han realizado mis relaciones, ya sean amigos o seguidores.
Las reglas son estas para ver movimientos:
En los que sigo solo puedo ver sus nuevas relaciones y las modificaciones sobre campos públicos.
En los amigos puedo ver sus nuevas relaciones y los campos públicos, y para amigos. También si alguno de los campos con protección total yo tenia permisos.

Se que suena algo enrevesado, Y sinceramente solo soy un aprendiz y no se como tendria que afrontar esto. He intentado hacer una consulta y me es imposible. He intentado hacer varias y generar un array con lo valido solo que yo podría ver, pero tb parece una locura y no queda muy coherente para las paginaciones....

Alguna idea de por donde debería tirar o como reestructurar el sistema?
Gracias por adelantado.
  #2 (permalink)  
Antiguo 01/11/2012, 01:02
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Timeline de actividad y movimientos

Tal vez lo que pido sale de los conocimientos generales básicos de la comunidad, pero acepto todo tipo de ideas, por muy locas que parezcan, tal vez refinandolas se conviertan en una buena aportación.

Tal vez crear una tabla temporal y sobre esa consultar? No me convence pero es otra opción...
  #3 (permalink)  
Antiguo 01/11/2012, 08:57
Avatar de 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
Puntos: 2658
Respuesta: Timeline de actividad y movimientos

Mira, la idea que estás desarrollando es en esencia una auditoría multinivel del desempeño (acciones) realizadas por un usuario. Al menos eso es lo que parece.
El tema es interesante, pero creo que estás perdiendo de vista el hecho precisamente que los diferentes casos de análisis que propones deberían ser consultadas por separadas e integradas luego en un reporte general, como sin dudas ya has visto en algún tipo de sitio.
Es muchísimo más simple analizar los datos por rubro, que intentar una consulta donde intentes analizar todo.
Me parece que deberías plantear primero qué tipo de reporte quieres obtener, y si el reporte es configurable, sólo hacer aquellas consultas que se necesiten para los datos que necesitas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 01/11/2012, 10:04
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Timeline de actividad y movimientos

Entiendo por donde vas, pensé que habia alguna forma creando un union o algo un poco más inteligente, pero puede que tengas razón, que las consultas por separado van a ser mas simples y ya el lenguaje de programación trabaje los resultados, pero me preocupa la paginación. ¿Como trabajaria las paginas una vez filtrados, y borrados los que no tiene que ver y demas?...

Basicamente lo que necesito es lo siguiente:
- Nuevas relaciones de mis amigos, o de los que sigo, donde el sea el que hace la acción.
- Cuando modificas, creas o borras un campo de información. Pero solo si el campo es publico, es un campo para amigos y soy amigo, o es un campo bajo petición y yo lo he pedido y me la ha aceptado.

Básicamente son esas dos reglas principales con un par de subreglas dentro.

Ahora utilizo php para el lenguaje de programacion. ¿Crees que deberia hacer las consultas individuales sin limite y trabajarlas en PHP? No es algo loco? Tal vez deberia repensar la estructura para que el union o otra forma se pudiese hacer?

La verdad es que este problema siempre lo tengo en todos las aplicaciones que creo, y no doy con nadie que pueda aconsejarme para aprender a hacerlo y enfocarlo bien desde el principio.

Un saludo.
  #5 (permalink)  
Antiguo 03/11/2012, 12:32
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Timeline de actividad y movimientos

Finalmente, tras meditar varios dias sin encontrar respuesta, voy a utilizar el campo info a modo de varchar 255, en el que guardaré una cadena parametrizada con la info básica necesaria que necesito. Así no mezclo a otras tablas.

Aunque no parece la solución más "limpia" debido a la sencillez que esto supone en DB, implementación y posibilidades voy a optar por esto.

Etiquetas: activity, select, timeline
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:57.