Ver Mensaje Individual
  #14 (permalink)  
Antiguo 24/11/2014, 08:30
Avatar de Dundee
Dundee
 
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 4 meses
Puntos: 8
Respuesta: Alguna aplicación de ejemplo con varias relaciones

Cita:
Iniciado por SirDuque Ver Mensaje
Buen en principio no veo utilidad de crear una clave primaria compuesta, si una de ellas es AUTO INCREMENT.
La clave primaria deber ser UNICA y el AUTO INCREMENT cumple esa regla.

$book_id es una FK que apunta a la entidad Book, lo indicaste vos en la anotación de dicha propiedad.
Código PHP:
Ver original
  1. /**
  2.    * @var intenger
  3.    *  
  4.    * @ORM\Column(name="book_id", type="integer", nullable=false)
  5.    * @ORM\ManyToOne(targetEntity="Book", inversedBy="Branch")
  6.    */
  7.   private $book_id;

El constructor se utiliza para ejecutar acciones, no para setear valores, las entidades la maneja el ORM Doctrine.

Si vos queres buscar el Branch y solo tenes el book_id lo haces de la siguiente manera:

$parent_branch = $em->getRepository('BranchMainBundle:Branch')->find( $book_id );
Ok una vez más creo que no me he sabido explicar.

La clave compuesta creía que era necesaria, pero te tendría que enseñar para ello el modelo entidad relación y el esquema de la aplicación que quiero hacer.

Básicamente quiero que la Id única de cada rama la formen su Id + Book_id, una vez que se crea una rama nueva, esta coge los datos del Book al que pertenece y añade una tupa en la Bd con un Id (autoincrement) y un Book_id dado por la aplicación. Pero ahora que lo pienso igual lo que dices tienes razón, ¿para qué un autoincrement si es compuesta? , jejje que lío. Tengo que darle un vuelta a esto. El book_id tendría que ser más bien como bien dices un FK.

Gracias
__________________
Videotutoriales de Drupal