10/06/2014, 18:24
|
| | Fecha de Ingreso: junio-2014 Ubicación: Riobamba
Mensajes: 24
Antigüedad: 10 años, 6 meses Puntos: 0 | |
Crear clave foránea compuesta Saludos..
Por favor si me pueden ayudar, necesito crear una clave foranea compuesta, estoy programando en Symfony2. Mis tablas son las siguientes
CURSO:
cur-codigo -> PK
cur-nombre
PARALELO:
par-codigo -> PK
par-nombre
NIVEL:
niv-paralelocodigo -> PK
niv-cursocodigo -> PK
Entonces en la tabla nivel se crea una PK compuesta de las tablas curso y paralelo
Ahora tengo dos tablas más
PERIODO
per-codigo -> PK
per-nombre
ESTUDIANTE
est-codigo -> PK
est-nombre
Las tablas periodo y estudiante forman una tabla N a N llamada "Matricula", la cual tiene como PK compuesta los Id's de periodo y estudiante; pero tambien recibe una FK compuesta de la tabla Nivel (niv_cursocodigo,niv_paralelocodigo).
Estoy trabajando con anotaciones ORM, por lo cual me gustaría saber como puedo definir la anotacion que me permita crear la FK compuesta de la tabla nivel.
A continuación las Entidades que he creado junto con las anotaciones
class Curso {
/**
* @ORM\Id
* @ORM\Column(name="cur_codigo",type="integer")
* @ORM\GeneratedValue
*/
protected $cur_codigo;
/** @ORM\Column(type="string", length=32, nullable=false) */
protected $cur_nombre;
}
------
class Paralelo {
/**
* @ORM\Id
*@ORM\Column(name="par_codigo", type="integer")
* @ORM\GeneratedValue
*/
protected $par_codigo;
/** @ORM\Column(type="string", length=32, nullable=false) */
protected $par_nombre;
}
------
class Nivel {
/** @ORM\Column(type="string", length=128, nullable=true) */
protected $niv_descripcion;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="yony\academicoBundle\ Entity\Curso")
* @ORM\JoinColumn(name="niv_curcodigo", referencedColumnName="cur_codigo")
*/
protected $niv_curcodigo;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="yony\academicoBundle\ Entity\Paralelo")
* @ORM\JoinColumn(name="niv_parcodigo", referencedColumnName="par_codigo")
*/
protected $niv_parcodigo;
}
----
class Periodo {
/**
* @ORM\Id
* @ORM\Column(name="per_codigo", type="integer")
* @ORM\GeneratedValue
*/
protected $per_codigo;
/** @ORM\Column(type="string", length=32) */
protected $per_nombre;
}
-----
class Estudiante {
/**
* @ORM\Id
* @ORM\Column(name="est_codigo", type="integer")
* @ORM\GeneratedValue
*/
protected $est_codigo;
/** @ORM\Column(type="string", length=64, nullable=true) */
protected $est_nombre;
}
---
Entonces no se como definir las anotaciones en la clase Matricula, para declarar un FK compuesta que viene de la tabla Nivel.
Por la atención gracias... |