Quiero hacer una clave única compuesta en la doctrina. Esos son mis campos:
/**
* @var string $videoDimension
*
* @Column(name="video_dimension", type="string", nullable=false)
*/
private $videoDimension;
/**
* @var string $videoBitrate
*
* @Column(name="video_bitrate", type="string", nullable=false)
*/
private $videoBitrate;
¿Cómo puedo mostrar la doctrina de que los que se combinan son una clave única compuesta?
php
mysql
doctrine-orm
Nikoole
fuente
fuente
-ToOne
asociaciones (claves externas)?_id
asociaciones, porque así es como Doctrine genera nombres de columna.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
y nada más importaLo encuentro más detallado
use
solo con ORM y luego prefijoORM
en las anotaciones. También tenga en cuenta que puede dividir la anotación en varias líneas para que sea más legible, especialmente si tiene varios elementos para mencionar (índice en el ejemplo siguiente).fuente
Sé que esta es una pregunta antigua, pero la encontré mientras buscaba una forma de crear PK compuesta y pensé que podría usar alguna actualización.
Las cosas son mucho más simples si lo que necesita es una clave primaria compuesta. (Lo que, por supuesto, garantiza la singularidad) La documentación de Doctrine contiene algunos buenos ejemplos en esta URL: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Entonces, el ejemplo original podría verse así:
Algunas notas aquí:
videoDimension
yvideoBitrate
son ambas partes del PK, no es necesario especificarnullable = false
fuente