Ich möchte einen zusammengesetzten einzigartigen Schlüssel in der Lehre machen. Das sind meine Felder:
/**
* @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;
Wie kann ich die Lehre zeigen, dass diese zusammen einen zusammengesetzten eindeutigen Schlüssel darstellen?
php
mysql
doctrine-orm
Nikoole
quelle
quelle
-ToOne
Assoziationen (Fremdschlüsseln) zu tun ?_id
Assoziationen anhängen , da Doctrine auf diese Weise Spaltennamen generiert.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
Ich finde es ausführlicher,
use
nur ORM zu verwenden und dannORM
Anmerkungen voranzustellen. Beachten Sie auch, dass Sie Anmerkungen in mehrere Zeilen unterteilen können, um die Lesbarkeit zu verbessern, insbesondere wenn Sie mehrere Elemente erwähnen müssen (Index im folgenden Beispiel).quelle
Ich weiß, dass dies eine alte Frage ist, aber ich bin auf sie gestoßen, als ich nach einer Möglichkeit gesucht habe, eine zusammengesetzte PK zu erstellen, und dachte, sie könnte ein Update gebrauchen.
Die Dinge sind tatsächlich viel einfacher, wenn Sie einen zusammengesetzten Primärschlüssel benötigen. (Was natürlich die Einzigartigkeit garantiert) Die Doctrine-Dokumentation enthält einige nette Beispiele unter dieser URL: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Das ursprüngliche Beispiel könnte also ungefähr so aussehen:
Ein paar Anmerkungen hier:
videoDimension
undvideoBitrate
beide Teile der PK sind, ist keine Angabe erforderlichnullable = false
quelle