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

Relación n-n (muchos a muchos)

Estas en el tema de Relación n-n (muchos a muchos) en el foro de Bases de Datos General en Foros del Web. Venía para saber si alguno sabía como repetir elementos en la tabla intermedia, ya que me interesa poder establecer más de una relación por cada ...
  #1 (permalink)  
Antiguo 12/05/2010, 14:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 0
Relación n-n (muchos a muchos)

Venía para saber si alguno sabía como repetir elementos en la tabla intermedia, ya que me interesa poder establecer más de una relación por cada objeto.

Por ejemplo:

Tengo una tabla ACTIVIDAD, otra EJERCICIO y otra ACTIVIDAD_EJERCICIO (con una relación muchos a muchos).

El caso es que haciéndolo así puedo crear una actividad con varios ejercicios y un ejercicio puede estar en varias actividades (hasta ahí sin problema)

El problema me viene cuando quiero relacionar una actividad 2 veces con el mismo ejercicio (es decir, poner dos veces el mismo ejercicio en una actividad), que no me deja la base de datos por como esta diseñada.

Sabéis como podría hacerlo?

La tabla que relaciona (ACTIVIDAD_EJERCICIO) tiene varios campos: rowid(autoincremental), series, repeticiones, id_ejercicio (PK,FK), id_actividad(PK,FK).

Para que hiciera lo que quiero, tendría que hacer PK el rowid también? En tal caso no me va a dar otros problemas? Es lo único que quiero modificar porque la aplicación ya esta acabada, pero no consideré esto al diseñar la base de datos, de ahí que quiera hacer esta modificación.

Saludos

Última edición por AlterElt; 12/05/2010 a las 14:47
  #2 (permalink)  
Antiguo 12/05/2010, 14:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Relación n-n (muchos a muchos)

Lo que debes hacer es añadir más campos a la clave primaria de la relación n:m, por ejemplo:
un autonumérico (poco aconsejable)
la fecha y hora. Recomendable
Recuerda añadirlo a la clave primaria
  #3 (permalink)  
Antiguo 12/05/2010, 16:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 63
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Relación n-n (muchos a muchos)

He estado probando y con SQLite al menos, si pongo el atributo rowid como clave primaria (además de id_actividad y id_rutina) me dice que no puede ser autoincremental, con lo cual estoy follao xD

Alguien tiene alguna otra información?

Saludos

EDITO:

Resuelto utilizando un atributo "fechahora" como me indicabas en el post anterior (sin que fuera PK, pero indicándole a la bdd que autoinserte la fecha y la hora de inserción en ese campo si se hace un insert). Muchas gracias.

Última edición por AlterElt; 12/05/2010 a las 20:42

Etiquetas: muchos
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 03:32.