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

duda con relacion y contador.

Estas en el tema de duda con relacion y contador. en el foro de Mysql en Foros del Web. Buenas , tengo una relación entre dos tablas A y B donde en la tabla relación tengo id_A id_B y los registros de AxB se ...
  #1 (permalink)  
Antiguo 10/01/2012, 08:08
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
duda con relacion y contador.

Buenas , tengo una relación entre dos tablas A y B donde en la tabla relación tengo
id_A
id_B
y los registros de AxB se puden repetir pero entonces no se si dejarlo que no se repita y ir guardando un campo nuevo que se el contador o dejar que se repitan y contarlos con count?


saludos
  #2 (permalink)  
Antiguo 10/01/2012, 08:28
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, 4 meses
Puntos: 2658
Respuesta: duda con relacion y contador.

Sin saber cómo es el modelo de datos, qué es esa relación y qué cardinalidad tiene, no es posible responder la pregunta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/01/2012, 12:38
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: duda con relacion y contador.

Mira esta es la estructura , y la tabla es collectablexusuarios donde pregunto si seria mejor colocar otro campo contador.




Uploaded with ImageShack.us


saludos
  #4 (permalink)  
Antiguo 10/01/2012, 12: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: 16 años, 4 meses
Puntos: 2658
Respuesta: duda con relacion y contador.

AL parecer, las relaciones de ese esquema no están correctamente definidas.
Me gustaría que nos dijeses qué representan las tablas realmente.
De todos modos, el tema de la tabla en cuestión es simple: Es una relación N:N, por tanto la PK debería estar formada porlas PK heredads de las tablas relacionadas. Eso es lo que dice el modelo.
Pero lo que tienes que responder es una pregunta:
¿Es posible que un collectible se relacione con el mismo user más de una vez?
Si la respuesta es SI, la PK requiere un discriminante, que puede no ser necesariamente un incremetnal. Bien podría ser un campo DATETIME, ya que es más rico para las consultas, e igualmente poderoso como atributo de la PK.
Si la respuesta es NO, entonces no lleva ningún discriminante, y no deben repetirse, cosa que sólo necesita de la definici´n de la PK para ser obtenido (si pusiste un autoincrement, eliminalo), y se debe hacer sobre las dos FK.

¿Se entiende?
__________________
¿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 10/01/2012, 13:53
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: duda con relacion y contador.

Muchas gracias te voy a explicar lo que quiero hacer ahí , la tabla collectables , son items que un usuario puede "coleccionar" , entonces usuario puede tener varios de los mismos , estos collectables pertenecen a una lista general de ahi la tabla "collectables". No se si esta bien hecho o hay algo mal ..

No me quedo claro lo del DATATIME.


saludos
  #6 (permalink)  
Antiguo 10/01/2012, 18:41
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, 4 meses
Puntos: 2658
Respuesta: duda con relacion y contador.

La idea de usar un DATETIME como parte de la clave es que un mismo usuario puede "tomar" o registrar un mismo tipo de objeto coleccionable, varias veces. Lo que jamás puede suceder es que todas las registraciones ocurran el mismo día, hora, minuto y segundo...
Por eso es un buen discriminante cuando se lo agrega como parte de la clave, y además, pro su misma naturaleza, permite hacer reportes de análisis basados en tiempo.
¿Se entiende la idea?

Ahora bien, si en tu sistema un mismo usuario pudiese registrar varios ejemplares al mismo tiempo, el esquema entero que planteas no sirve, porque el concepto no sería ese, sino otro tipo de entidades similares a las facturas, recibos, remitos, o cosas semejantes. Es decir, una entidad única que registre las operaciones de registración realizadas, donde la cantidad sea uno de los atributos...

Es decir, un esquema completamente distinto.

Otra cosa que no queda claro es qué diferencia a collectable de collectables. ¿Qué contiene cada una de ellas?
__________________
¿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 10/01/2012, 20:28
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: duda con relacion y contador.

ah ok ya me quedo claro es muy buena idea el DATETIME en mi caso funcionaria perfecto, collectables es la tabla que contieneel nombre y id una lista de collectable no se si asi lo hice bien , es algo como que "un collectable pertenece a una lista y una lista puede tener varios de estos.

asi estaria bien?

saludos
  #8 (permalink)  
Antiguo 11/01/2012, 19:17
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: duda con relacion y contador.

Segun lo que me has dicho , seria mejor hacerlo que se pueda repetir en la tabla agregándole un campo DATATIME y hacer el conteo con count() directamente ?

saludos

Etiquetas: registros, relacion, tabla
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 04:31.