Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Unikalna para kluczy w adnotacjach

Hej mam problem,

pytanko właściwie tyczy sie doctrine2 lecz jest ściśle powiązane z symfony2 wiec może ktoś będzie znał odpowiedz.

Mam sobie dwie klasy entity: Attraction oraz User.
Tworze sobię relacje manyToMany:

Attraction:

/**
* @ORM\ManyToMany(targetEntity="Explore\UserBundle\Entity\User", mappedBy="observers", cascade={"persist", "remove"})
*/
private $observed;


User:

/**
* @ORM\ManyToMany(targetEntity="Explore\SiteBundle\Entity\Attraction", inversedBy="observed", cascade={"persist", "remove"})
* @ORM\JoinTable(name="attraction_observers",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE", onUpdate="CASCADE")},
* inverseJoinColumns={@ORM\JoinColumn(name="attraction_id", referencedColumnName="id")}
* )
*/
private $observers;


i moje pytanko: jak utworzyć unikalną pare kluczy w tabeli "attraction_observers" dla kolumn user_id oraz attraction_id ?
Czyli rezultatem w bazie danych powinna być możliwość dodawania rekordów z unikalną parą kluczy np.

dobrze:
user_id: 1
attraction_id: 2

user_id: 1
attraction_id: 3

źle:
user_id: 1
attraction_id: 1

user_id: 1
attraction_id: 1

Ma ktoś może jakąs porade jak to zdefiniować w adnotacjach?Piotr Krajewski edytował(a) ten post dnia 19.02.12 o godzinie 12:15
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Unikalna para kluczy w adnotacjach

Piotr Krajewski:
jak utworzyć unikalną pare kluczy w tabeli "attraction_observers" dla kolumn user_id oraz attraction_id ?
Czyli rezultatem w bazie danych powinna być możliwość dodawania rekordów z unikalną parą kluczy np.
Testowałeś @UniqueConstraint?
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Unikalna para kluczy w adnotacjach

tak wiem ze cos takiego istnieje ale problem jest taki iż nie mam zdefiniowanej klasy encji w której miało by to być zastosowane (gdyz jest tworzona relacja manyToMany i symfony z automatu tworzy tabele).

konto usunięte

Temat: Unikalna para kluczy w adnotacjach

Nie jestem tego na 100% pewien, ale wyczytałem, że Doctrine w takich przypadkach proponuje używanie relacjie oneToMany/manyToOne i utworzenie pośredniej tabeli ręcznie.
Niestety troszeczke więcej kodu do wklepania ręcznie, ale da się zrobić (ostatnio coś podobnego robiłem tylko potrzebowałem dodatkowej kolumny w tabeli łączącej).Aleksander Wons edytował(a) ten post dnia 20.02.12 o godzinie 07:01
Piotr Krajewski

Piotr Krajewski web application
programmer

Temat: Unikalna para kluczy w adnotacjach

tak, takie rozwiazanie chcialem zastosowac w ostateczności (bo po co tworzyc nową klasę tylko dla zdefiniowania jednej linijki).

No nic chyba tak trzeba bedzie zrobić.
Thx

Następna dyskusja:

Rodzinna para 24 lata szuka...




Wyślij zaproszenie do