Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2][SF2] Jakie obiekty mają największy sens
Foxx
post
Post #1





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Załóżmy, że mamy następującą sytuację: użytkownik może podjąć się realizowania projektu, który składa się z wielu zadań.
Tworzę więc klasy: User, Project i Task. Podejmowanie projektu składa się z wykonywania kolejnych zadań i w każdym momencie musi być jasne które z zadań zostały już zrealizowane. Nie umiem się zdecydować co zrobić w momencie podejmowania zadania przez użytkownika.

Problemem dla mnie jest to, że chyba nie mogę po prostu utworzyć relacji między użytkownikiem, a projektem bo mimo, że miałbym wtedy wszystkie dane na temat zadań do wykonania to nie miałbym gdzie zapisać informacji na temat ich realizacji przez konkretnego użytkownika. Na przykład gdy użytkownik zakończy zadanie to muszę gdzieś zapisać datę tego zdarzenia.

Myślałem o stworzeniu kolejnych dwóch klas np. UserProject i UserTask, które reprezentowałyby podjęty projekt i jego zadania. W momencie podejmowania projektu z 10 zadaniami byłby dla danego użytkownika tworzony obiekt UserProject oraz 10 obiektów UserTask w realcji z UserProject. Mógłbym wtedy zapisać w tych nowych obiektach dowolne dane.

A może raczej powinienem tylko dodać projekt do myProjects obiektu użytkownik, a dopiero w trakcie realizowania kolejnych zadań tworzyć obiekty np. finishedTask? Ale gdzie mógłbym wtedy przechować informację o np. dacie podjęcia projektu?

A może jeszcze jakoś inaczej?

Ten post edytował Foxx 21.10.2013, 11:02:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pyro
post
Post #2





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


No to wygląda, że podane rozwiązanie jest tym czego potrzebujesz.

Cytat(Foxx @ 21.10.2013, 14:08:13 ) *
1. Użytkownik jest dwukrotnie powiązany z zadaniami - poprzez projekt oraz poprzez UserTask. Ale może to nie jest problem?


Raczej bym patrzył na to, że user jest powiązany z projektami oraz user jest powiązany z zadaniami. Samo przypisanie do projektu znaczy tylko tyle, że w nim uczestniczy i np. pojawi mu się na liście, ale niekoniecznie coś z nim jeszcze robił.

Cytat(Foxx @ 21.10.2013, 14:08:13 ) *
2. Przeprowadzanie niektórych istotnych operacji może być przykre, np: znajdź kolejne zadanie, które powinien teraz realizować user. Albo znajdź wszystkie zadania o danym statusie (status byłby w tabeli user_task) z wybranego projektu.


Gdzie tam, po prostu dobranie odpowiedniego zapytania.

Cytat(Foxx @ 21.10.2013, 14:08:13 ) *
3. Bezpośrednie powiązanie usera z zadaniami - no sam nie wiem... jakoś czuję, że to mogłoby być bardziej eleganckie. User już jest powiązany z zadaniami poprzez projekt. Z drugiej strony moje propozycje na temat "klonowania" struktury projektu i jego zadań może są jeszcze mniej eleganckie...


Napewno jest to lepsze rozwiązanie od klonowania struktury projektu (generalnie jest to antywzorzec). I tak jak wspomniałem - user będąc powiązany z projektami nie jest powiązany tak naprawdę z zadaniami.

// EDIT

Btw. sam temat z frameworkami i Sf2 ma związku tyle co nic. Raczej ORMy -> Doctrine

Ten post edytował pyro 21.10.2013, 13:45:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 05:48