Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/12/2013, 10:52
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: CakePHP - Cannot add or update a child row: a foreign key constraint fails

Cita:
La FK va donde la cardinalidad de la relación es N. Siempre.
Ok, hasta ahi me queda claro, ese dato es el q no tengo en cuenta para relacionar las tablas.

Ahora bien, siguiendo con mi ejemplo pero yendo a lo practico y volcando la teoria q me das de ejemplo:
- un user tiene un perfil y un perfil corresponde a un solo usuario, esa relacion la veo como 1:1

Es obvio q van a haber muchos perfiles, como asi tambien, muchos usuarios... y muchos posts y comentarios.

Volviendo al user->perfil, perfil->user, repito, yo lo veo como una relacion 1:1 y no 1:N. En mi logica ya estoy diciendo q un perfil pertenece a un solo usuario.
En cambio, si veo relacion 1:N en decir q un usuario va a tener ninguno/muchos posts, o un post va a tener ninguno/muchos comentarios.

No le encuentro sentido cuando me decis:
Cita:
En este sentido, los usuarios tienen perfiles, pero sólo un perfil cada uno.Pero hay N perfiles posibles, entonces la relación Usuario - > perfil es N:1, y por tanto la FK de Perfil va en el usuario, pero no al revés-
Seguramente me estoy expresando mal:

Yo creo la tabla users y la tabla profile:

Users:
id int() primary key auto_increment... etc,
:


Profiles:
id int() primary key auto_increment... etc,
id_user int()...
:

El articulo q estoy leyendo dice:
Cita:
Una clave foránea es simplemente un campo en una tabla que se corresponde con la clave primaria de otra tabla.
En mi caso, el campo id_user de la tabla Profiles es FK del campo id de la tabla User. Es asi como lo veo yo por el momento.

Vos me decis q asi no, q la logica es N:1 y la FK "deberia" estar en un campo de la tabla Users, o sea, crearia un campo en la tabla Users q se llame profile_id... es correcto lo q entendi?

Podrias aclararme eso?

Gracias