Hej!
chciałbym zapytać Was o radę odnośnie rozwiązania pewnego zadania, które pojawiło mi się ostatnio na rekrutacji na stanowisko juniora.
Mianowicie miałem zaprojektować mechanizm dodawania tasków dla programistów na tablicy kanbanowej. Kto nie wie jak wygląda, to już tłumaczę. Mamy kilka kolumn, między którymi przeciągamy naszego taska w zależności od jego statusu. Statusem może być to "Open", "In Progress", "Done", "To Do", "In Review", "Under review", "Approved", "Cancelled". Problemem nie jest jednak stworzenie listy rozwijanej ze wszystkimi dostępnymi statusami, ale mechanizm, który oprogramuje walidacje na te statusy - tzw flow
. To znaczy, "Open" może przejść tylko na "To Do" albo "Cancelled". "In Progress" może przejść tylko na "In Review" lub "Cancelled". "Cancelled" może przejść tylko na "Open" itp.
Moje pytanie: jak to zaprojektować w SQL jako tabelę, a później oprogramować w EF, żeby zapisywał to do bazy?
Moja próba rozwiązania to była tabelka asocjacyjna, która zawiera relację wiele-do-wiele. Ale to dziwne, że w jednej tabelce miałbym zawrzeć dwa klucze obce (FK TaskStatusId, FK NextTaskStatusId) do tej samej tabelki, jaką jest TaskStatusDictionary... Później próbując to zaprojektować w EnityFramework Core mam duże problemy z implementacją...
Dziękuję za poświęcony czas.
Pozdrawiam
PS: Jeśli ktoś ma pytania lub drobne uwagi, to proszę o komentarz do posta. Jeśli ktoś wie jak to rozwiązać, to proszę o odpowiedź. (zgodnie z art. II pkt. 4 regulaminu forum).