• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mapowanie do wielu typów

0 głosów
66 wizyt
pytanie zadane 27 listopada 2017 w PHP, Symfony, Zend przez Ehlert Mędrzec (171,120 p.)

Cześć, 

obecnie piszę w Symfony(3.3) (+ Doctrine2). Czy możliwe jest aby mapować rekordy z jednej tabeli do wielu typów dziedziczących po jednej, nieabstrakcyjnej klasie?

Owa sytuacja wynika z tego, że wszystkie typy rzeczywiście mają wspólną klasę rodzica, z której repozytorium muszę korzystać. Rozwiązań jest kilka.

  1. @MappedSuperclass - problem polega na tym, że klasa bazowa nie jest queryable. ​​​​​​
  2. Zawarcie w tej jednej tabeli enuma, do jakiego typu mam castowawać. W tym przypadku wali się SOLID, bo na niższym poziomie dziedziczenia zawieram informacje o wyższym poziomie.
  3. Podział na wiele tabel, w głównej zawarcie tylko pól z klasy bazowej. Resztę uzyskać relacją 1:1 do innych tabel reprezentujących inne klasy.
  4. A może jedno wspólne repozytorium? 

 Po co takie rozwiązania. Otóż chcę po stronie aplikacji wymusić na bazie danych polimorfizm. Wynika to z tego, żepwystąpienia encji z głównej tabeli chcę na niższym poziomie traktować jednakowo. Na wyższym poziomie chcę zamykać logikę biznesową do modeli. Dla każdej klasy inna logika.

1 odpowiedź

0 głosów
odpowiedź 27 listopada 2017 przez CzikaCarry Szeryf (75,440 p.)

Nie do końca rozumiem co chcesz osiągnąć. Jeśli chcesz po prostu zrobić wiele modeli dla jednej tabeli (nawet się zrymowało) to dziedziczysz po klasie z Entity reprezentującym tabelę w bazie. Wtedy będziesz mógł stworzyć wiele typów dla jednej tabeli etc.

Otóż chcę po stronie aplikacji wymusić na bazie danych polimorfizm. Wynika to z tego, żepwystąpienia encji z głównej tabeli chcę na niższym poziomie traktować jednakowo.

Oczywiście nie wiem, czy dobrze zrozumiałem, jeśli źle (a zapewne zupełnie w inną stronę) to popraw. Rozjaśnij troszeczkę te dwa zdania, bo nie do końca rozumiem co chcesz osiągnąć :)

Podobne pytania

0 głosów
1 odpowiedź 43 wizyt
pytanie zadane 16 września w PHP, Symfony, Zend przez michal_php Gaduła (4,220 p.)
0 głosów
1 odpowiedź 60 wizyt
0 głosów
1 odpowiedź 55 wizyt
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

67,234 zapytań

114,194 odpowiedzi

242,038 komentarzy

45,643 pasjonatów

Przeglądających: 319
Pasjonatów: 13 Gości: 306

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...