![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Witam,
z racji, że większość entities w projekcie będzie miała swoje statusy (np. deleted, verified, expired itd.) oraz z uwagi na fakt, że będę potrzebował historię zmian tych statusów wymyśliłem następujące rozwiązanie: Entity Status:
dla przejrzystości usunąłem adnotacje. Myk polega na tym, że mam entity np. Account. Pomiędzy tymi dwoma obiektami tworzę relację many to many (nie chcę w tabeli status dawać np. account_id ponieważ Status będzie podpinany do jeszcze wielu innych obiektów). Z każdej "statusowalnej" klasy wyprowadzam zatem powiązanie do Status poprzez tabelę pośredniczącą. Moje pytania są następujące: 1. Czy taka struktura według osób bardziej niż ja doświadczonych (zaczynam z Sf2 dopiero) jest poprawna i ma ręce i nogi? 2. W jaki prosty sposób mogę pobrać te statusy wraz z obiektem? Interesują mnie oczywiście najnowsze z danego typu. W czystym SQL pobranie aktualnych statusów wyszło mi w nast. sposób:
Z góry dziękuję za wszelkie dobre rady i pomoc, Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
wg mnie tabala ze statusami jesli chcesz zrobić many to many powinna zawierać jedynie pola id, type.
Tabela łacząca Account ze Statusem powinna zawierac pola change reason, change_by, change_at Powód jest prosty jeśli dodasz te pola do status i zmienisz np. reason jakiemus statusowni to wszytskie account z tym statusem będą miały ten sam change_reason. W symfony możesz połączyć te tabele i pobierac poprzez getStatus. Poczytaj na stronach doctrine o relacji many-to-many -------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Założenie jest takie, że jeden status jest przypisany tylko do jednego konta (pole status_id w tabeli łączącej ma być unique), tak aby jeden status mógł być wykorzystany tylko raz. Poza tym powód zmiany statusu musi być częścią historii - zatem dobrze by było, gdyby był trzymany razem ze statusem - tak mi się wydaje.
Jakiś pomysł jak mogę połączyć pobieranie Account z zapytaniem SQL wyżej? Zależałoby mi, żebym mógł wyświetlić listę kont z ich statusami zachowując jednocześnie pewną (na tym etapie chociaż szczątkową) optymalizację. Pozdrawiam i dzięki za odpowiedź! ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 10:07 |