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

Relacion entre tablas SQL Server

Estas en el tema de Relacion entre tablas SQL Server en el foro de SQL Server en Foros del Web. Que tal, tengo un proyecto personal y necesito hacer lo siguiente!. necesito un poco de ayuda con respecto a la relacion entre tablas, ya que ...
  #1 (permalink)  
Antiguo 20/04/2011, 12:41
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Relacion entre tablas SQL Server

Que tal, tengo un proyecto personal y necesito hacer lo siguiente!.

necesito un poco de ayuda con respecto a la relacion entre tablas, ya que tengo esto

usuario
----------
id_usuario
nombre
mail
etc
id_rol

y la tabla rol

rol
----
id_rol
rol1
rol2
etc

estan conectadas por medio de llaves de Muchos usuarios a 1 rol entonces mi duda es la siguente.
Como guardo los datos en la base de datos, para que despues me aparezca de esta manera.

usuario
--------
nombre:juan
correo:[email protected]
id_rol: 1
etc

y en la tabla de roles estaria algo asi

rol
---
id_rol:1
rol1:juan
rol2:Null
rol3:Null

no se si me doy a entender, espero su ayuda gracias...
  #2 (permalink)  
Antiguo 20/04/2011, 12:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion entre tablas SQL Server

Bueno, pues creas un STORE PROCEDURE que te abra una transaccion (BEGIN TRAN), insertas en usuario y despues en rol, si todo fue satisfactorio confirmas tu transaccion (COMMIT TRAN) y si no, pues des-haces lo que hiciste (ROLLBACK TRAN)
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 20/04/2011, 15:35
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Relacion entre tablas SQL Server

Cita:
Iniciado por iislas Ver Mensaje
Bueno, pues creas un STORE PROCEDURE que te abra una transaccion (BEGIN TRAN), insertas en usuario y despues en rol, si todo fue satisfactorio confirmas tu transaccion (COMMIT TRAN) y si no, pues des-haces lo que hiciste (ROLLBACK TRAN)


bueno ahora estoy replantenadolo de otra forma

tengo las tablas

usuario
---------
id_usuario
nombre
mail
etc1
id_rol

y en roles
rol
---
id_rol
privilegio

entonces lo que quiero es conectar esas dos por medio de las llaves de 1rol tiene muchos usuarios, entonces para poder introducir eso desde mi formulario tengo que hacer algo asi

formulario

nombre:juan
pw:juan
mail:juan
privilegio: admin

y esto llegaria a mi base de datos algo asi

usuario
---------
id_usuario:1
nombre: juan
pw: juan
mail:juan
etc:etc
id_rol: ??? (esta parte es la que tengo duda como hacer para que se conecte por medio de las llaves con la tabla rol...)

y la de rol me quedaria algo asi
rol
----
id_rol:1
privilegio: admin ...

para que cuando yo quiera obtener los datos lo pueda hacer solo usando los id's de la base de datos...

gracias y exitos....
  #4 (permalink)  
Antiguo 20/04/2011, 15:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion entre tablas SQL Server

Bueno, vamos a plantearlo de otra forma, ¿que avance llevas de tu query?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 20/04/2011, 16:11
Avatar de Jesua  
Fecha de Ingreso: septiembre-2008
Ubicación: Guatemala, Guatemala
Mensajes: 29
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Relacion entre tablas SQL Server

Cita:
Iniciado por iislas Ver Mensaje
Bueno, vamos a plantearlo de otra forma, ¿que avance llevas de tu query?
Gracias,

pues ya tengo hechas las tablas, osea la base de datos y los formularios todo esta hecho, incluso con la relacion, ahora lo que quiero es meter los datos en la base de datos, pero no se cual sera la forma correcta para meter los datos en la base de datos,

digamos que quiero hacer esto,

insert into us(nombre, correo, etc, id_rol*aca esta mi duda) values ("juan","juan@gmail", "etc", "(eta parte de la llave foranea con id_rol)";

estaba pensando en hacer un query doble no se si realmente se pueda?

esto iria a la tabla usuarios
usuario
------
id_usuario:1
nombre: juan
mail: juan@juan
etc:etc
id_rol: (esta es una llave foranea que quiero que obtenga el dato de la otra tabla de roles.)

mas que todo esa es mi duda como hacer que el dato que esta en usuarios como llave en este caso id_rol que tambien aparezca en id_rol de la tabla roles, y dentro de la tabla roles que pueda introducir el privilegio que tiene!...

gracias
  #6 (permalink)  
Antiguo 20/04/2011, 16:30
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Relacion entre tablas SQL Server

Por eso te comentaba, debes desarrollar un STORE PROCEDURE que reciba los parametros necesarios para realizar tu primer INSERT, de ahi, si es satisfactorio, tomas la ID que le fue asignada y realizas tu segundo INSERT, de ser esto satisfactorio ejecutas tu commit de la transaccion.

Esa seria la forma de hacerlo

Creo, que tu duda estriba en como utilizar las instrucciones T-SQL, ¿es asi?
__________________
MCTS Isaias Islas

Etiquetas: server, sql
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 14:29.