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

necesito vincular usuarios - proyectos

Estas en el tema de necesito vincular usuarios - proyectos en el foro de Mysql en Foros del Web. Estimados, necesito crear un par de tablas para luego hacer el siguiente vinculo... Tengo una cierta cantidad de proyectos y otro tanto de usuarios, pero ...
  #1 (permalink)  
Antiguo 21/12/2011, 11:21
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
necesito vincular usuarios - proyectos

Estimados, necesito crear un par de tablas para luego hacer el siguiente vinculo...

Tengo una cierta cantidad de proyectos y otro tanto de usuarios, pero un proyecto puede tener varios usuarios trabajando en el, como un usuario puede participar en varios proyectos...

como puedo crear las tablas que me cumplan eso?
  #2 (permalink)  
Antiguo 21/12/2011, 11:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: necesito vincular usuarios - proyectos

Una relación de ese tipo se clasifica como N:N, es decir, de muchos a muchos, y requiere crear una tabla relacional tal que contiene la PK de ambas tablas vinculadas.
Esta tabla tiene como PK (primary key) a las FK (foreign key) de las otras tablas, y se declara la PK como compuesta por ellas.
Todo atributo que sea propio de esa relación (el usuario con el proyecto) debe ir en esa tabla, no así los atributos que sean propios del usuario o del proyecto. Esos van en sus respectivas tablas.
¿Se entiende la idea?
__________________
¿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 21/12/2011, 12:15
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
Respuesta: necesito vincular usuarios - proyectos

honestamente... poco entendi

que pasa ahora si yo tengo creada una tabla donde existen los usuarios y contraseñas y otra donde estan los proyectos con todos sus datos, y como ambas son usadas en varias funciones de la pagina, no puedo dejarlas ya de lado...

te explico mas o menos...

al ingresar a la platadorma con el nombre y usuario uso la tabla de los usuarios, y dependiendo del tipo de usuario me redirige a donde yo quiera... en este caso el mas delicado seria que el usuario fuera tecnico, enviandolo a un formulario de ingreso de datos, donde aparecen los proyectos a los cuales el esta vinculado...

si el usuario es cliente, ingresa y puede ver los certificados de los proyectos a los cuales esta vinculado...

el ideal seria modificar las tablas que ya tengo creadas... es posible?
  #4 (permalink)  
Antiguo 21/12/2011, 12:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: necesito vincular usuarios - proyectos

Vamos a ver si se entiende con una imagen:

Si observas la tercera tabla, "Protagonistas", verás que sólo contiene las PK de cada una de las otras (Película e Intérpretes), y a su vez, la PK de esa tabla está compuesta por las dos claves al mismo tiempo (clave primaria compuesta).
Eso es una relación N:N, porque un intérprete puede serlo de muchas películas, y una película puede tener muchos intérpretes.
Eso es lo que debes implementar con tus tablas.

¿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 21/12/2011, 12:39
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
Respuesta: necesito vincular usuarios - proyectos

Si, se entiende mucho mejor...

Entonces, ya tengo creada mi 3° tabla, en la cual, sus 2 datos deben estar relacionados con las PK de las 2 primeras tablas...

Ahora, uso el myphpadmin y estoy usando para eso el "diseñador"...

Lo que estoy haciendo es tomar como "clave referencial" la PK de la primera tabla y como FK uno de los datos de la 3°, diciendole que ante DELETE o UPGRADE haga "cascade"...

Se me ocurrio eso, ya que si yo elimino un usuario o un proyecto, estos deben desaparecer de la 3° tabla...

voy bien o no?
  #6 (permalink)  
Antiguo 21/12/2011, 12:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: necesito vincular usuarios - proyectos

Vas bien.
Asegúrate de que tnto la PK como la correspondiente FK de la otra tabla sean del mismo tipo y rango (INT - INT, INT UNSIGNED - INT UNSGNED).
Y recuerda (aaunque no lo creas, lo preguntan) que esa tercera tabla no se llena sola. Require un INSERT para agregarlos valores, pero siempre deben ser valores que existan en su tabla referenciada (integridad referencial)
__________________
¿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/12/2011, 18:51
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
Respuesta: necesito vincular usuarios - proyectos

como te decia, soy novato en esto, comence hace no mas de 2 meses a involucrarme en esto ya que por incompetente despedimos al "programador web" que teniamos en la empresa...

ahora mi consulta va en como funciona todo esto... yo tengo mi formularios, pero necesito hacer los codigos para hacerlo funcionar... si bien supe como hacer la relacion entre las tablas, necesito saber como es que va a funcionar...

necesito tanto vincular como desvincular usuarios...
  #8 (permalink)  
Antiguo 21/12/2011, 19:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: necesito vincular usuarios - proyectos

Eso son temas procedimentales de programación, porque es donde se prepararán las sentencias.
Te conviene ir a consultar en el foro del lenguaje que estás usando, y mi sugerencia es que previamente leas las FAQs de ese foro porque contienen siempre ejemplos muy claros de cómo se hacen las cosas.
El Foro de PHP (infiero que eso usarás), por ejemplo, tiene unas FAQs muy completas con enormes cantidades de ejemplos y links.
Date una vuelta por allí y podrás sin duda empezar a resolver tus problemas.
Cualquier duda que sea estrctamente con las consultas en SQL (no la parte de PHP), puedes preguntarla acá.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 21/12/2011, 21:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
Respuesta: necesito vincular usuarios - proyectos

muchisimas gracias, buscare la info y si tengo alguna duda con respecto a la db pregunto aca...
  #10 (permalink)  
Antiguo 25/12/2011, 10:04
 
Fecha de Ingreso: noviembre-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 0
Respuesta: necesito vincular usuarios - proyectos

editadoooooo

Última edición por chumy_; 25/12/2011 a las 11:49 Razón: porque si
  #11 (permalink)  
Antiguo 25/12/2011, 14:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: necesito vincular usuarios - proyectos

Cita:
Iniciado por chumy_ Ver Mensaje
editadoooooo
Bueno, a pesar de que lo hayas editado, te comento: Si borras un usuario, puedes borrar todas sus relaciones, pero no puedes borrar los proyectos en tu esquema, porque para hacerlo primero tienes que comprobar que no haya otros usuarios vinculados al proyecto.
En general, cuando hay relaciones N:N, que originan una tabla relacionar, sólo se pueden hacer tareas de borrado en forma programática, y no en cascada.
__________________
¿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: proyectos, tabla, usuarios, vincular
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 08:27.