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
Foxx
post
Post #2





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

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


Po namyśle wydaje mi się, że wiem jak to rozwiążę.
Przede wszystkim chciałem dodać informację, która chyba trochę umyka: Project i Task są tworzone w CMSie przez admina. Użytkownicy podejmują się realizacji projektów, ale nie modyfikują w żaden sposób obiektów Project i Task. Każdy użytkownik ma swoją indywidualną przygodę z projektem czyli z jego zadaniami.

W związku z tym potraktowanie Project i Task jako "matrycy" wydaje mi się uzasadnione. Moje obecne rozwiązanie polega na tym, że zmieniam nomenklaturę na Goal i Step - są to obiekty tworzone przez admina. User, który decyduje się realizować wybrany cel tworzy w tym momencie kolejny obiekt, który nazwę Project. Project będzie to Goal , który jest realizowany przez konkretnego użytkownika. Project będzie w relacji z Goal, ale nie będą to podobne obiekty - Project przechowuje informacje specyficzne dla danego użytkownika oraz informację o tym z jakiego Goal się wywodzi. Po stworzeniu Project od razu tworzę dla niego obiekty Task, które są odzwierciedleniem Step. Czyli Task analogicznie jest to Step, który będzie realizowany przez konkretnego użytkownika, w danym terminie i który przechowa też wynik.

Tworzę od razu wszystkie Tasks dla danego Projektu ponieważ i tak wszystkie muszą być stworzone. Tzn. w trakcie trwania projektu i tak każdy Task musi zostać przedstawiony userowi.

Efektem będzie relacja User - Project - Task. Project i Task będą w relacji ze swoimi "matrycami" - czy to jest akceptowalne rozwiązanie?

UPDATE:

Stworzę też klasę GoalServer, którą zarejestruję jako service i która będzie się zajmować tworzeniem projektów i zadań oraz generalnie zadaniami na tych obiektach, np. pobieraniem odpowiednich zestawów zadań, zadaniami na zadaniach uruchamianych z crona itp.

Ten post edytował Foxx 24.10.2013, 14:33:27
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: 27.12.2025 - 12:21