Wpis z mikrobloga

@gajowy_marucha: w doctrine również masz dziedziczenie, tam się dzieje to po abstrakcyjnym typie, który jest podstawą do zbudowania tabeli (nie po Eloquencie, a po "abstrakcyjnej" encji), a następnie dyskryminator doktrynowy sprawia (na podstawie dodatkowej kolumny w tabeli), że hydruje się obiekt odpowiedniej klasy, wedle zadanej wcześniej konfiguracji. Jedna klasa dziedzicząca może posiadać jedną relację, a druga inną. "Fizycznie" pojawią się w tabeli dwie kolumny, ale tylko jedna z nich będzie
  • Odpowiedz
@uirapuru: W laravel to bylo proste strasznie, byla kolumna na typ i kolumna na id. Tutaj gdy probuje zrobic inheritance "joined" to tworzy sie tabela posrednia dla kazdej mozliwosci, nie mozna prosciej tego rozwiazac?
  • Odpowiedz
@gajowy_marucha: to zalezy chyba od typu jaki wybierzesz, w symfony jesli dobrze pamietam jest na to kilka mozliwosci. ja osobiscie unikam takich rozwiązań, oznacza, że baza jest źle zaprojektowana imho ;)
  • Odpowiedz
@uirapuru: jestem otwarty na inne rozwiazanie, moze napisze co konkretnie robie teraz.
Otoz mam klase document i chce zeby obiekty klasy ducument byly w relacji do innych obiektow, np user, transaction i stock.
W #laravel uzywalem relacji polimorficznych co tworzylo po prostu kolumne "documentabetype" i "documentableid" w tabeli document. oczywiscie documentableid nie moze byc kluczem obcym bo odnosi sie do roznych klas zdefiniowanych przez documentabletype. Natomiast w #
  • Odpowiedz
@uirapuru: Probuje zastosowac wlasnie tez przyklad z dokumentacji. ale juz to ze moje klasy User i Transaction maja dziedziczyc po Document jest dziwne. Najwyrazniej nei rozumiem jak to dziala.
Gdy napisze anotacje tak jak w dokumentacji doctrine probuje tworzyc klucz obcy do User w Document.
  • Odpowiedz
@gajowy_marucha: To się nie zrozumieliśmy. Sądziłem, że masz dwa typy dokumentów (które by dziedziczyły po Document). I zależnie od typu jeden ma wskazywać na User a drugi na Transaction. Ale chyba nie :)
  • Odpowiedz