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

Mapowanie do wielu typów

Object Storage Arubacloud
0 głosów
184 wizyt
pytanie zadane 27 listopada 2017 w PHP przez Ehlert Ekspert (212,670 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 277 wizyt
pytanie zadane 19 kwietnia 2022 w C# przez CdxProj Użytkownik (910 p.)
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 16 stycznia 2020 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
1 odpowiedź 174 wizyt
pytanie zadane 16 września 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,937 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...