Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/11/2014, 18:58
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: Insertar en dos tablas

No existen los INSERT automagicos.
Si tienes dos tablas, son dos INSERT. Uno por tabla. Eso es inevitable porque no puedes enviar en un INSERT a una tabla datos que no le pertenecen, y por la relación que has creado deberías pasarle a "Entidad", el nombre y apellido del usuario... y no tiene cómo recibirlo porque ese atributo no pertenece a su estructura.

Más allá de eso, a mi entender estás definiendo mal tu modelo por varia causas.
- ¿El usuario pertenece a la entidad, o los datos de esa "entidad" son propios del usuario?
Para que se entienda, en una relación 1:1 o 1:N, la FK va en la tabla que conceptualmente depende de la otra. En tu esquema creas primero una instancia de datos como dirección, teléfono, etc, sin que necesariamente exista alguien a quien pertenezcan.
¿Te parece lógico eso?
Para mi es manifiesto que esos datos pertenecen al usuario, y por tanto primero existe el usuario y luego sus datos, por lo que entidad debería tener la FK de Usuario, y Usuario no tener ninguna FK

- Estás integrando en un mismo atributo nombre y apellido. Eso es un error de diseño, porque luego no podrás separar las partes del nombre cuando quieras hacer consultas por apellido o por nombre.
Los atributos de ese tipo se ponen por separado: un campo para Nombre y otro para Apellido.

- En domicilio pareces estar poniendo todo: calle, numero, piso, departamento, ciudad, provincia, país...
Por lo mismo de antes, ¿te parece razonable?
La verdad, no. Cada atributo debe tener un único dominio, y en tu caso hay al menos cinco para ese solo campo...

- Estás definiendo una dependencia de cumplimiento imposible...
Dos entidades que se relacionan entre sí, no pueden tener cada una la FK de la otra, porque no podrías insertar nada.
En pocas palabras, en ese esquema, para poder insertar una entidad debería existir previamente el usuario, de lo contrario no podrías agregar el registro. Pero a su vez has definido que el usuario dependa de la entidad, es decir que debe insertarse el registro en entidad para poder meter el de usuario.
Obviamente eso es una dependencia imposible de cumplir.
Se denominan "dependencias circulares" y son uno de los peores errores de diseño que pueden hacerse.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/11/2014 a las 19:33