
18/01/2009, 13:28
|
 | Colaborador | | Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 8 meses Puntos: 24 | |
Respuesta: Como organizo tabla para visitas? Asumiendo que tienes estas tablas:
Usuarios:
id_usuario (llave primaria)
....
Perfiles:
id_perfil (llave primaria)
.... Enfoque Nº1
La primera opción es hacer una tabla visitas de manera que cada vez que un usuario visita un perfil, se genere un nuevo registro en esta tabla. La tabla sería así:
Visitas:
id_visita (lave primaria)
id_usuario (llave foránea a la tabla Usuarios)
id_perfil (llave foránea a la tabla Perfiles)
fecha_hora
...
Cada vez que un usuario visita un perfil, se agrega un nuevo registro a esta tabla, guardando el id del usuario que visita el perfil, el id del perfil que visita, y el momento en que lo visita.
El enfoque explicado es el más flexible de todos, ya que te permite recopilar toda clase de información estadística, de quién, cuando y qué visitó. Como vos dijiste, tiene la contra de que cada visita genera un nuevo registro, y si la cantidad de visitas que realiza cada usuario y la cantidad de usuarios son muy grandes, entonces estás en problemas. Enfoque Nº2:
Una forma de contrarrestar el problema citado anteriormente, es no guardando el momento en que el usuario hace la visita al perfil. Las tabla de visitas quedaría así:
Visitas:
id_visita (lave primaria)
id_usuario (llave foránea a la tabla Usuarios)
id_perfil (llave foránea a la tabla Perfiles)
cantidad
...
De esta manera, cada vez que el usuario visita un perfil, lo único que se modificaría es la cantidad, ya que este campo identifica la cantidad de veces que el usuario visitó el perfil.
De esta manera, sólo se inserta un registro cuando el usuario visita por primera vez el perfil. Las sucesivas visitas del usuario al mismo perfil, sólo incrementarían el campo cantidad.
Otra ventaja de este enfoque es que para consultar cuantas visitas tiene un perfil, deberá escanear muchos menos registros de la tabla, incrementando la performance de tu aplicación. Enfoque Nº3:
Un tercer enfoque posible, es evitar guardar el usuario que realiza la visita. Es decir que sólo mantendremos un contador de las visitas realizadas al perfil. La tabla sería así:
Visitas:
id_perfil (llave primaria a la tabla Perfil)
cantidad
...
De esta manera, cuando un usuario visita un perfil, sólo se incrementa el campo cantidad. Cómo ya no se especifica que usuario hace la visita, sólo se realiza una inserción cuando el perfil es visitado por primera vez. De esta manera se gana mucho rendimiento a la hora de registrar la visita y a la hora de consultar la cantidad de visitas de un determinado perfil.
Bien, estas soluciones que te he planteado, son sólo las básicas. Podés usar cualquier otra que se te ocurra, o inclusive una combinación de las que nombro.
Saludos y espero haberte ayudado. |