Foros del Web » Programando para Internet » PHP »

PHP y tabla N-N

Estas en el tema de PHP y tabla N-N en el foro de PHP en Foros del Web. stimados, necesito saber como hacer funcionar una pagina donde hay que vincular o desvincular un usuario por tabla N-N. Solicite ayuda en el foro mysql ...
  #1 (permalink)  
Antiguo 25/12/2011, 07:19
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 12 años, 5 meses
Puntos: 0
PHP y tabla N-N

stimados, necesito saber como hacer funcionar una pagina donde hay que vincular o desvincular un usuario por tabla N-N. Solicite ayuda en el foro mysql para saber como diseñar una ddbb donde un usuario puede estar relacionado a varios proyectos, y un proyecto puede estar relacionado a varios usuarios...

Mi problema es que no se como funcionan las relaciones con las tablas foraneas y primarias y como se debe programar esto en php para que lo anterior funcione (proyectos - usuarios)

Alguien que me pueda explicar bien como funciona todo esto???
  #2 (permalink)  
Antiguo 25/12/2011, 10:26
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: PHP y tabla N-N

es muy fácil, en la tabla usuarios tenemos entre otros el campo id_usuario, este deberá ser único y autoincrementable, de esa forma nos aseguramos que todos los usuarios tengan un id distinto.
El id es solo un numero.
En la tabla proyectos habrá un campo id_usuario, en el que se guardará el id del usuario.
Entonces a la hora de guardar un proyecto se debe saber cual es el id del usuario.

tabla usuarios
id_usuario
nombre
apellido
nombre_usuario
contrasena


tabla proyectos
id_usuario
nombre_proyecto
fecha
etc
etc
__________________
la la la
  #3 (permalink)  
Antiguo 25/12/2011, 10:47
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: PHP y tabla N-N

tu problema se resuelve aca http://www.forosdelweb.com/f86/neces...yectos-965646/ de hecho ya gnzsoloyo te indico lo que tienes que hacer ya con php queda hacer los procesos que tu sistema requiere, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #4 (permalink)  
Antiguo 26/12/2011, 00:29
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: PHP y tabla N-N

Cita:
Iniciado por truman_truman Ver Mensaje
es muy fácil, en la tabla usuarios tenemos entre otros el campo id_usuario, este deberá ser único y autoincrementable, de esa forma nos aseguramos que todos los usuarios tengan un id distinto.
El id es solo un numero.
En la tabla proyectos habrá un campo id_usuario, en el que se guardará el id del usuario.
Entonces a la hora de guardar un proyecto se debe saber cual es el id del usuario.

tabla usuarios
id_usuario
nombre
apellido
nombre_usuario
contrasena


tabla proyectos
id_usuario
nombre_proyecto
fecha
etc
etc
Hola truman. Hay solo un detalle. Según entendí en la pregunta, la relación uno a varios debe ser recíproca, o sea:

un usuario a varios proyectos

y

un proyecto a varios usuarios

En el caso que planteas funciona solo para:

un usuario a varios proyectos

Yo creo que debería haber una tabla puente para hacer las relaciones. Algo así:

Tabla Usuarios
Id_usuario | Nombre_usuario
1 | pepe
2 | lola
3 | cuco

Tabla Proyectos
Id_proyecto | Nombre_proyecto
1 | proyecto1
2 | proyecto2
3 | proyecto3

Tabla Relaciones
Id_usuario | Id_proyecto
1 | 1
1 | 2
1 | 3
2 | 1
3 | 1

De esta forma la tabla Relaciones guardaría información de relación recíproca entre usuarios y proyectos. De esa forma si queremos todos los id de proyectos en los que participa el usuario 1 hacemos:

SELECT Id_proyecto FROM Relaciones WHERE Id_usuario=1

Y si queremos todos los todos los id de usuarios que participan en el proyecto 1 hacemos:

SELECT Id_usuario FROM Relaciones WHERE Id_proyecto=1

En el caso que planteo el usuario1 participa en los proyectos 1,2y3 pero en el proyecto1 participan los usuarios 1,2y3.

Esto es solo una idea, ya faltaría adaptarlo a tu caso en concreto.

Saludos.
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.

Última edición por jorgelpadronb; 26/12/2011 a las 00:36

Etiquetas: mysql, tabla, usuarios
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 21:26.