Я хочу сделать составной уникальный ключ в доктрине. Это мои поля:
/**
* @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;
Как я могу показать доктрину, что все вместе составляют составной уникальный ключ?
php
mysql
doctrine-orm
Никоул
источник
источник
-ToOne
ассоциаций (внешних ключей)?_id
для ассоциаций, потому что именно так Doctrine генерирует имена столбцов.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
Я считаю более подробным
use
только ORM, а затем префиксORM
в аннотациях. Также обратите внимание, что вы можете разбить аннотацию на несколько строк, чтобы сделать ее более читаемой, особенно если у вас есть несколько элементов, которые нужно упомянуть (индекс в примере ниже).источник
Я знаю, что это старый вопрос, но я столкнулся с ним, когда искал способ создания составного ПК, и подумал, что для этого можно использовать какое-то обновление.
На самом деле все намного проще, если вам нужен составной первичный ключ. (Что, конечно, гарантирует уникальность) Документация Doctrine содержит несколько хороших примеров по этому URL: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Исходный пример может выглядеть примерно так:
Несколько примечаний здесь:
videoDimension
иvideoBitrate
являются обеими частями ПК, указывать не нужно.nullable = false
источник