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

como unir BD usuario con una tabla tipo usuario

Estas en el tema de como unir BD usuario con una tabla tipo usuario en el foro de Mysql en Foros del Web. Buenos días resulta que tengo dos tablas: la primera se llama usuario y tiene todos los datos básicos del usuario como: nombre - tipo_identificacion - ...
  #1 (permalink)  
Antiguo 27/04/2011, 11:10
 
Fecha de Ingreso: abril-2011
Ubicación: Manizales
Mensajes: 17
Antigüedad: 13 años
Puntos: 0
Pregunta como unir BD usuario con una tabla tipo usuario

Buenos días resulta que tengo dos tablas:
la primera se llama usuario y tiene todos los datos básicos del usuario como:
nombre - tipo_identificacion - num_identificacion - direccion, entre otros.
y la segunda tabla la que tiene el tipo de usuario "tipo_usuario"
pass_usuario_u - tipo_usuario_u - y la foranea de la tabla usuario " usuario_num_identificacion"

La pregunta es: como puedo unir estas dos tablas en una sola osea si la relación es de 1:N, un usuario puede tener varios tipos de usuario, la idea es no volver a registrarse para obtener otro tipo de usuario, ademas no se cual podría ser la clave principal del usuario si ponerle un id al mismo o tener dos campos como clave primaria por ejemplo : (num_documento, id_usuario), el id_usuario es para identificar que tipo de usuario tiene ya que pueden ser varios.



pd: no se si ya me respondí con esto pero quiero tener otras opiniones, otra cosa me toca unirlas porque el ingeniero que esta a cargo me dijo que tenia que unirlas.

Gracias:
  #2 (permalink)  
Antiguo 27/04/2011, 11:18
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: como unir BD usuario con una tabla tipo usuario

Si tienes una tabla USUARIO y otra TIPO_USUARIO, y un usuario puede tener varios tipos, lo que tienes es una relación N:N y eso requiere una tercera tabla (relacional) que administre esa vinculación, la cual sólo necesita dos campos: la PK del usuario y la PK dl tipo de usuario, y ambas al mismo tiempo componen la PK de lesa tabla.
__________________
¿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 27/04/2011, 11:44
 
Fecha de Ingreso: abril-2011
Ubicación: Manizales
Mensajes: 17
Antigüedad: 13 años
Puntos: 0
Respuesta: como unir BD usuario con una tabla tipo usuario

Gracias gnzsoloyo tienes toda la razón la relación es N:N y eso genera otra tabla solo con las pk de las otras dos, pero se puede hacer una sola tabla? que no sean las tres (tipo_usuario, usuario, combinación de las dos primeras) que la tipo_usuario quede integrada en la de usuario, teniendo encuenta la relación N:N, seria así como dije anteriormente?, sea una clave con dos campos.

Gracias.

PD: lo que se quiere es tener el mínimo de tablas en la base de datos.
  #4 (permalink)  
Antiguo 27/04/2011, 11:51
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: como unir BD usuario con una tabla tipo usuario

No. El modelo relacional requiere que toda relación N:N tenga su propia tabla.
No hay otra forma de implementar un sistema en que un mismo registro de una tabla pueda relacionarse con varios de otra, y que al mismo tiempo cada registro de la otra se pueda relacionar con varios de la primera.
La única otra alternativa es limitar la cantidad de relaciones y poner una cantidad fija de campos en la tabla usuario para uso de tipos fijos (uno por tipo). Pero a medida que aumenten o disminuyan los tipos de usuario, deberás agregar o eliminar columnas de la tabla, y esto afectará a todos los usuarios.
No tiene sentido. No ganas nada y te complicas mucho. Por algo Kort lo pensó así.
__________________
¿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: bd, tabla, tipo, 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:07.