Je veux faire une clé unique composite dans la doctrine. Ce sont mes domaines:
/**
* @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;
Comment puis-je montrer la doctrine, que ceux combinés ensemble sont une clé unique composite?
php
mysql
doctrine-orm
Nikoole
la source
la source
-ToOne
associations (clés étrangères)?_id
pour les associations, car c'est ainsi que Doctrine génère les noms de colonnes.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
et rien d'autre n'a d'importanceJe le trouve plus verbeux que pour
use
ORM puis préfixeORM
dans les annotations. Notez également que vous pouvez diviser l'annotation en plusieurs lignes pour la rendre plus lisible surtout si vous avez plusieurs éléments à mentionner (index dans l'exemple ci-dessous).la source
Je sais que c'est une vieille question, mais je l'ai rencontrée en cherchant un moyen de créer un PK composite et j'ai pensé qu'il pourrait utiliser une mise à jour.
Les choses sont en fait beaucoup plus simples si vous avez besoin d'une clé primaire composite. (Ce qui, bien sûr, garantit l'unicité) La documentation de Doctrine contient quelques bons exemples par cette url: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Ainsi, l'exemple d'origine pourrait ressembler à ceci:
Quelques notes ici:
videoDimension
etvideoBitrate
font tous deux partie de la PK - il n'est pas nécessaire de spécifiernullable = false
la source