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

Separar views de datos en otra tabla?

Estas en el tema de Separar views de datos en otra tabla? en el foro de Mysql en Foros del Web. Buenas, Tengo una tabla de productos, con su nombre y caracterísitcas. Quiero hacer un contador de visitas en cada producto, de modo que se puedan ...
  #1 (permalink)  
Antiguo 20/03/2011, 06:14
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Separar views de datos en otra tabla?

Buenas,

Tengo una tabla de productos, con su nombre y caracterísitcas.

Quiero hacer un contador de visitas en cada producto, de modo que se puedan visualizar las visitas que ha obtenido cada producto desde la página web.

Para ello había pensado en hacer una columna "visitas" en la tabla de productos pero he visto por otros sitios que lo separan en otra tabla y lo relacionan con un Id del producto.

¿por qué? ¿Qué opción es mejor?

Hacer
producto(id, caracterisitca1, caracteristica2..., visitas)

O bien
Producto(id, caracteristica1, caracteristica2...)
ProductoVisitas(id, visitas)

Estando ambas relacionadas por el ID.

Gracias de antemano! ;)
  #2 (permalink)  
Antiguo 20/03/2011, 12:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Separar views de datos en otra tabla?

A la acción de relacionar tablas se la denomina "Normalización", se usa para no duplicar valores, y de esta forma mantener los datos mas ordenados y consistentes.

En tu caso no creo que debas hacer una relación, ya que cada producto va a tener diferente cantidad de visitas.

Otro seria el caso por ejemplo si quisieras ponerle un "tipo" (producto para: limpieza, cosmética, electrónica, etc), entonces aquí lo mas conveniente seria crear una nueva tabla que se llame, en este ejemplo, tipo en el que se listaran todos los tipos y a los que vas a relacionar mediante un id con tu producto.

Soy un tanto nuevo en esto también, pero estoy leyendo del tema, te dejo un sitio en el que se explica de forma bastante clara el tema de las relaciones:

http://www.colordeu.es/BLOG/normaliz...-base-de-datos
http://www.colordeu.es/BLOG/tutorial...ad-referencial

Un saludo y espero haberte dado alguna ayuda :)
  #3 (permalink)  
Antiguo 20/03/2011, 13:13
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Separar views de datos en otra tabla?

Cita:
Iniciado por ariann Ver Mensaje
A la acción de relacionar tablas se la denomina "Normalización", se usa para no duplicar valores, y de esta forma mantener los datos mas ordenados y consistentes.
Gracias, pero se lo que es la normalización a fondo :) (hasta 5FN)

Yo preguntaba más bien porque puede que deban de separarse los datos que vayan a ser modificacos con cierta frecuencia (como el número de visitas, que puede ser actualizado cientos de veces en un solo día) de los datos estáticos que simplemente vayan a ser consultados.

Un saludo.
  #4 (permalink)  
Antiguo 20/03/2011, 16:29
Avatar de 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: Separar views de datos en otra tabla?

Cita:
Yo preguntaba más bien porque puede que deban de separarse los datos que vayan a ser modificacos con cierta frecuencia (como el número de visitas, que puede ser actualizado cientos de veces en un solo día) de los datos estáticos que simplemente vayan a ser consultados.
Si conoces el diseño de base de datos tan profundamente como lo dices, deberás recordar en tonces que no se almacenan datos que se pueden calcular, como sería el caso de las visitas.
Se supone que una visita es un acceso y los accesos se almacenan en alguna tabla que nos pueda indicar el historial de navegación de todos los usuarios. ¿O no es así como lo manejas?

Aclarando tu duda: No existe un modo mejor o peor, existen métodos que son óptimos en el contexto de la información que la empresa quiere obtener de esas visitas.
SI las visitas por página de un producto específico son relevantes para ellos, deberás implementar una forma de identificar las páginas de modo que puedas identificar y contar las genéricas de las específicas, pero eso puede no implicar tablas específicas para las páginas de un producto.
Me parece que en todo caso debes plantearte un modo y tablas capaces de responder toda esa información sin necesidad de agregar tablas que implican cierta redundancia...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 20/03/2011, 17:30
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Separar views de datos en otra tabla?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si conoces el diseño de base de datos tan profundamente como lo dices, deberás recordar en tonces que no se almacenan datos que se pueden calcular, como sería el caso de las visitas.
Se supone que una visita es un acceso y los accesos se almacenan en alguna tabla que nos pueda indicar el historial de navegación de todos los usuarios. ¿O no es así como lo manejas?.
Hablo de visualizaciones de cada producto.
No es algo calculable.

Cada vez que se acceda a ese dato de la base de datos, aumentará en uno el número de visualizaciones.
Es incrementar un número.
  #6 (permalink)  
Antiguo 20/03/2011, 19:20
Avatar de 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: Separar views de datos en otra tabla?

Desde la óptica de lo que estás planteando existe una entidad que podría denominarse visitas. Si te importa la cantidad de visitas, en ese sentido, debería existir una tabla que contenga la información de quienes te visitan y en qué momento. AL menos eso sería una información relevante como BI.
Pero si lo que te interesa es la cantidad de visitas a las páginas, sin otra información, eso mismo lo puedes manejar en una tabla como contador, pero no tiene mucha relación con la base de datos. Simplemente ssería una función de la página (eso es programación) que mande a sumar 1 al registro de la página en una tabla que contenga la lista de páginas.
Desde el punto de vista de BI, es una información casi irrelevante, salvo como curiosidad.
Yo personalmente no haría que esa información fuese parte de una tabla "Producto", porque las visitas a la página de producto no son un atributo o propiedad del producto, sino de la página que lo muestra. Son conceptos distintos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 21/03/2011, 02:52
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 6 meses
Puntos: 14
Respuesta: Separar views de datos en otra tabla?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Desde la óptica de lo que estás planteando existe una entidad que podría denominarse visitas. Si te importa la cantidad de visitas, en ese sentido, debería existir una tabla que contenga la información de quienes te visitan y en qué momento. AL menos eso sería una información relevante como BI.
Pero si lo que te interesa es la cantidad de visitas a las páginas, sin otra información, eso mismo lo puedes manejar en una tabla como contador, pero no tiene mucha relación con la base de datos. Simplemente ssería una función de la página (eso es programación) que mande a sumar 1 al registro de la página en una tabla que contenga la lista de páginas.
Desde el punto de vista de BI, es una información casi irrelevante, salvo como curiosidad.
Yo personalmente no haría que esa información fuese parte de una tabla "Producto", porque las visitas a la página de producto no son un atributo o propiedad del producto, sino de la página que lo muestra. Son conceptos distintos.
¿Y cómo propones hacerlo "por programación"?
Los datos, o una de dos, o se guardan en una base de datos, o en un fichero...
Teniéndolos en una base de datos se puede jugar más con ellos, hacer estadísticas y manipularlos más fácilmente.

Realmente no es una idea tan rara la que estoy proponiendo del contador de visualizaciones... vamos, cualquier foro (sml, phpbb2, bulletin...) tienen sistemas de estos implementados en la BD.
  #8 (permalink)  
Antiguo 21/03/2011, 05:42
Avatar de 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: Separar views de datos en otra tabla?

Bueno, si lo que quieres es saber cómo se implementan las estructuras d visita en casos avanzados como los que mencionas, mira atentamente y analiza este ejemplo:



En el primer diagrama pueds apreciar cómo se implementa esa parte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: views, tablas
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 06:04.