Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/08/2011, 16:07
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Relacion uno a uno

El problema puede estar a nivel de diseño, porque una relación 1:1 implica que la PK de una de las dos tablas debe ser FK en la otra. En principio, no hay nada que determine cuál en cual, sólo se pide que una de las dos sea FK de la otra, pero sólo una de las tablas contiene la FK, la otra no.
Esto es así porque no se debe crear una dependencia recíproca que es imposible de cumplir. Si pones cada PK como FK de la otra tabla, jamás podrás insertar nada, porque en ese caso para que un usuario se pueda insertar debería existir primero el caballero, pero eso sería imposible porque para insertar el caballero se requeriría el usuario.
¿Se entiende le problema lógico?
La forma de determinar cuál es la PK que va como FK es simple: ¿Cuál de las dos cosas debe existir si o sí al iniciar el sistema?
Simple: El usuario.
Es imposible que un sistema exista sin usuarios, por lo qe si es lo primero que comienza a existir en el sistema, entonces el caballero depende de él, y la PK del usuario va como FK en la tabla de caballero.
Y esto es más allá de si usas Postgre, SQL Server o lo que sea: Es diseño de bases de datos.

Verifica que esta sea la situación.
Si así está diseñado todo, entonces asegúrate de que el valor que estás poniendo en la FK de Caballero exista previamente en Usuario.
El resto es asunto de programación y eso no se trata en este foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)