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

Relación uno a uno en tablas diferentes

Estas en el tema de Relación uno a uno en tablas diferentes en el foro de SQL Server en Foros del Web. Hola ! Soy nuevo en el foro, tengo una duda sobre la relación entre tablas y espero que puedan ayudarme :) Resulta que quiero hacer ...
  #1 (permalink)  
Antiguo 24/03/2012, 06:57
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 7 años, 7 meses
Puntos: 1
Sonrisa Relación uno a uno en tablas diferentes

Hola ! Soy nuevo en el foro, tengo una duda sobre la relación entre tablas y espero que puedan ayudarme :)

Resulta que quiero hacer un sistema de altas de usuario y me instale el sql management studio para hacer una base de datos (se muy poquitito de bases de datos casi nada)
La duda sobre las relaciones es porque mi loca cabesita decidió que no quería los usuarios y las contraseñas en la misma tabla, y me parecía que era perfectamente posible guardarlas en tablas separadas.. en teoría..
En la practica me deja ingresar el usuario en la tabla correspondiente pero cuando voy a ingresar la contraseña en la otra tabla (la de contraseñas) me aparece un cartel en ingles que francamente da miedo y dice algo sobre valores 'null' y sobre una restricción de algo y una foreign key que la verdad no entiendo.

Dejo una de las estructuras que probé para que quede mas claro:

tabla usuarios
id_usuario (entero, autoincremental, sin duplicados, clave primaria)
contraseña(varchar(25))

tabla contraseña
id_contraseña (entero, autoincremental, sin duplicados, clave primaria)
id_usuario(entero, autoincremental, sin duplicados, clave foranea apunta a tabla usuarios)
contraseña(varchar(12))

bueno esto es todo, la verdad que lei mucho por ahi de claves primarias y foraneas y aun no entiendo porque no funciona, para colmo de males el programa es en ingles y no domino el lenguaje.

Espero que alguien pueda darme una manito, les agradezco por anticipado.

Saldos !!
  #2 (permalink)  
Antiguo 26/03/2012, 11:19
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.480
Antigüedad: 12 años, 4 meses
Puntos: 180
Respuesta: Relación uno a uno en tablas diferentes

¿porque no dejar los datos en UNA sola tabla?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 09/04/2012, 14:49
 
Fecha de Ingreso: abril-2012
Mensajes: 1
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: Relación uno a uno en tablas diferentes

Hola claudio

Lo primero que debes hacer es que el campo contraseña debe tener el mismo tamaño en ambas tablas para evitar problemas de integridad de los datos y mas si piensas encriptar la contraseña.
Bueno también veo que estas haciendo dependiente la tabla del usuario de la contraseña, osea que la clave foranea debiera ser la del id del usuario y no la contraseña y si lo quieres así, se debe poner el id de la tabla contraseña que es la que se puede usar como clave foranea, ya que de la forma que lo estas poniendo no te va a funcionar y da a entender que una contraseña puede tener varios usuarios y debe ser al contrario, bueno al menos en teoria.

Espero me entiendas lo que te trato de explicar y que mi aporte te ayude a solucionar algo el dilema. :)
  #4 (permalink)  
Antiguo 09/04/2012, 17:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 3 meses
Puntos: 774
Respuesta: Relación uno a uno en tablas diferentes

Cita:
Iniciado por claudiofernandez2010 Ver Mensaje
Hola ! Soy nuevo en el foro, tengo una duda sobre la relación entre tablas y espero que puedan ayudarme :)

Resulta que quiero hacer un sistema de altas de usuario y me instale el sql management studio para hacer una base de datos (se muy poquitito de bases de datos casi nada)
La duda sobre las relaciones es porque mi loca cabesita decidió que no quería los usuarios y las contraseñas en la misma tabla, y me parecía que era perfectamente posible guardarlas en tablas separadas.. en teoría..
En la practica me deja ingresar el usuario en la tabla correspondiente pero cuando voy a ingresar la contraseña en la otra tabla (la de contraseñas) me aparece un cartel en ingles que francamente da miedo y dice algo sobre valores 'null' y sobre una restricción de algo y una foreign key que la verdad no entiendo.

Dejo una de las estructuras que probé para que quede mas claro:

tabla usuarios
id_usuario (entero, autoincremental, sin duplicados, clave primaria)
contraseña(varchar(25))

tabla contraseña
id_contraseña (entero, autoincremental, sin duplicados, clave primaria)
id_usuario(entero, autoincremental, sin duplicados, clave foranea apunta a tabla usuarios)
contraseña(varchar(12))

bueno esto es todo, la verdad que lei mucho por ahi de claves primarias y foraneas y aun no entiendo porque no funciona, para colmo de males el programa es en ingles y no domino el lenguaje.

Espero que alguien pueda darme una manito, les agradezco por anticipado.

Saldos !!
Dios........ ingles miedo miedo....jajaja, y porque no pegas el dichoso mensaje??? o porque no intentas traducirlo directamente en google o algun otro traductor y buscas porque te da ese mensaje de error, el problema es que tienes relacionada la tabla usuario con la de contraseña aunque para la normalizacion de tablas tu modelo esta mal deberia de ser

tabla usuario
usuario contraseña

y listo no tienes porque tenerlo en 2 tablas
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: clave, relaciones, foreignkey
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 08:01.