[Doctrine] Uni vs Bidirectional |
[Doctrine] Uni vs Bidirectional |
7.06.2016, 13:25:30
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 22 Dołączył: 10.02.2015 Ostrzeżenie: (0%) |
Witam,
Jeśli ktoś ma do czynienia z Doctrine, to bardzo prosiłbym o wsparcie Co w rzeczy samej sprawia, że wybieramy typ relacji Unidirectional/Bidirectional? Z definicji wiem, do czego obie strategie służą. Posłużmy się przykładem korepetycji. Zdefiniujmy np. tabele: student: id | name teacher id | name private_lesson id | student_id | teacher_id | topic I teraz dochodzi do zdefiniowania relacji. Tutaj wg. mnie wybrałbym strategię Unidirectional (źle??). Tworząc nowy obiekt korepetycji, która miałaby pola uczeń/nauczyciel łatwo mógłbym wstrzyknąć obiekty ucznia i nauczyciela. Ale nie widzę sensu dodawania do klas Student/Teacher pola private_lessons. (dobrze myślę?). Lecz czasem też operacja pobrania wszystkich korepetycji danego ucznia / nauczyciela byłaby potrzebna, ale czy warto pchać do klasy pole private_lesson? Można oczywiście pobrać dane poprzez DBAL. Mógłby ktoś jakąś radą rzucić? -------------------- |
|
|
7.06.2016, 14:14:36
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
1. Doctrine to ORM, czyli powinieneś skupić się na obiektach, nie ich reprezentacji w bazie danych.
2. Jeżeli w swoich klasach masz jedynie powiązanie PrivateLesson -> {Student, Teacher} masz do czynienia z relacją jednokierunkową. Jeżeli masz powiązanie PrivateLesson <-> {Student, Teacher} masz relację dwukierunkową. |
|
|
Wersja Lo-Fi | Aktualny czas: 23.05.2024 - 11:20 |