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

-ToOneasociaciones (claves externas)?_idasociaciones, 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
usesolo con ORM y luego prefijoORMen 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í:
videoDimensionyvideoBitrateson ambas partes del PK, no es necesario especificarnullable = falsefuente