Chcę zrobić złożony, unikalny klucz w doktrynie. To są moje pola:
/**
* @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;
Jak mogę pokazać doktrynę, że te połączone razem stanowią złożony unikalny klucz?
php
mysql
doctrine-orm
Nikoole
źródło
źródło
-ToOne
skojarzeń (kluczy obcych)?_id
skojarzenia, ponieważ w ten sposób Doctrine generuje nazwy kolumn.@Table(uniqueConstraints={@UniqueConstraint(columns={"case_id", "duration"})})
i nic innego się nieUważam, że jest to bardziej rozwlekłe niż
use
ORM, a następnie prefiksORM
w adnotacjach. Pamiętaj również, że możesz podzielić adnotację na kilka wierszy, aby uczynić ją bardziej czytelną, zwłaszcza jeśli masz kilka elementów, o których warto wspomnieć (indeks w przykładzie poniżej).źródło
Wiem, że to stare pytanie, ale natknąłem się na nie, szukając sposobu na stworzenie złożonej PK i pomyślałem, że przydałoby się trochę aktualizacji.
Rzeczy są faktycznie znacznie prostsze, jeśli potrzebujesz złożonego klucza podstawowego. (Co oczywiście gwarantuje wyjątkowość) Dokumentacja Doctrine zawiera kilka fajnych przykładów z tego adresu URL: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html
Więc oryginalny przykład mógłby wyglądać mniej więcej tak:
Kilka uwag:
videoDimension
ivideoBitrate
są - nie ma potrzeby określanianullable = false
źródło