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

Mapowanie do wielu typów

Mały hosting, OGROMNE możliwości
0 głosów
296 wizyt
pytanie zadane 27 listopada 2017 w PHP przez Ehlert Ekspert (215,210 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,340 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
0 odpowiedzi 442 wizyt
pytanie zadane 19 kwietnia 2022 w C# przez CdxProj Użytkownik (910 p.)
0 głosów
1 odpowiedź 404 wizyt
pytanie zadane 16 stycznia 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 16 września 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

93,718 zapytań

142,631 odpowiedzi

323,262 komentarzy

63,266 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...