Eu quero fazer uma chave única composta na doutrina. Esses são meus 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;
Como posso mostrar a doutrina de que aqueles combinados são uma chave única composta?
php
mysql
doctrine-orm
Nikoole
fonte
fonte
-ToOne
associações (chaves estrangeiras)?_id
para associações, porque é assim que Doctrine gera nomes de coluna.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
e nada mais importaAcho que é mais prolixo
use
apenas para ORM e prefixoORM
nas anotações. Observe também que você pode quebrar a anotação em várias linhas para torná-la mais legível, especialmente se você tiver vários itens a serem mencionados (índice no exemplo abaixo).fonte
Eu sei que esta é uma pergunta antiga, mas me deparei com ela enquanto procurava uma maneira de criar PK composta e pensei que poderia usar alguma atualização.
Na verdade, as coisas são muito mais simples se você precisar de uma chave primária composta. (O que, é claro, garante exclusividade) A documentação do Doctrine contém alguns bons exemplos por este url: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Portanto, o exemplo original poderia ser semelhante a este:
Algumas notas aqui:
videoDimension
evideoBitrate
são partes do PK - não há necessidade de especificarnullable = false
fonte