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 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 222 Pomógł: 34 Dołączył: 3.11.2010 Ostrzeżenie: (0%)
|
W SF2 rozwiazywalem to w taki sposob ze robilem relacje n:m ale nie za pomoca ManyToMany ale tak jak pisal pyro - towrzylem sam tabele laczaca i w obu encjach robilem 1:n powiazanie z ta wlasnie tabela. Przy takim rozwiazaniu mozesz sobie dodac do tabeli laczacej co chcesz (tak jak rysowal pyro).
Jak dla mnie to jakos nie widze za bardzo sensu powiazywania usera z taskiem osobnymi relacjami. Jest on tak czy siak powiazany przez Projekt. Kwestia prezentacji zostaje po stronie skryptu wyswietlajacego. Jezeli potrzebujesz jakis dodatkowych info do taska np. komenty albo inne bajery to po prostu dodaj kolejna tabele i w niej rob powiasanie user-task. Ten post edytował Ghost_78 21.10.2013, 16:28:41 |
|
|
|
Foxx [Symfony][Symfony2][SF2] Jakie obiekty mają największy sens 21.10.2013, 11:02:06
Ghost_78 Ja w takich sytuacjach lubie uzywac relacji n:m cz... 21.10.2013, 11:37:31
pyro A nie możesz po prostu stworzyć m:m między użytkow... 21.10.2013, 12:05:54
Foxx @Ghost_78: Istotne jest dla mnie przechowywanie ko... 21.10.2013, 12:07:59
pyro Niech no ja naszkicuję "profesjonalny" m... 21.10.2013, 12:10:44
Foxx Czyli, trzymając się kontekstu Symfony2, proponuje... 21.10.2013, 13:08:13
pyro Możesz w takim razie dokładniej opisać jak się odb... 21.10.2013, 13:10:58
Foxx Już opisuję:
User decyduje się na wybrany projekt... 21.10.2013, 13:19:26
pyro Ale task też może być realizowany przez kilku użyt... 21.10.2013, 13:24:40
Foxx Task może być realizowany przez kilku użytkowników... 21.10.2013, 13:32:27
pyro No to wygląda, że podane rozwiązanie jest tym czeg... 21.10.2013, 13:44:19
Foxx Ok, dzięki. Przyjmę takie rozwiązanie, ale jeszcze... 21.10.2013, 13:50:40
Foxx Po namyśle wydaje mi się, że wiem jak to rozwiążę.... 23.10.2013, 22:20:31 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 10:32 |