Cześć,
chcę napisać aplikację której głównym celem będzie:
- obsługa zgłoszeń studentów na wyjazdy zagraniczne - formularz ze zdefiniowanymi polami
- wyświetlanie danych w formie tabeli - studenci przyporządkowani do danej uczelni
- raportowania np listy studentów danego wydziału
Zdaję sobie sprawę że to zbyt okrojony opis żeby podjąć decyzję co do wyboru bazy danych dla aplikacji ale zastanawiam się nad użyciem bazy MongoDB w tym projekcie. Dlaczego MongoDB
- ponieważ docelowo chciałbym żeby aplikacja działała w architekturze mikroserwisowej.
Jakie mam wątpliwości:
Aplikacja ma mieć możliwość definiowania uczelni i ilości miejsc na niej dostępnych dla studentów. W odniesieniu do zdefiniowanej uczelni ma się generować lista studentów jaka się do niej zapisała np w nazwie kolumny będzie dana uczelnia + ilość miejsc dostępna na danej uczelni, pod spodem lista studentów którzy ją wybrali w formularzu. Rozumiem że w MongoDB zdefiniuję sobie dokument reprezentujący formularz studenta i dokument reprezentujący uczelnię. Każdy nowy dokument formularza będzie reprezentował formularz danego studenta. Każdy nowy dokument uczelni będzie reprezentował nową uczelnię. Jak w takim razie zrealizuję powiązanie studenta do uczelni? Wyobrażam sobie to tak że aplikacja będzie pobierała listę uczelni, które wyświetli w formie tabeli. Kolejnym krokiem będzie pobranie nazwy uczelni z tej listy i wyszukanie wszystkich studentów którzy się do niej zapisali. Pytanie czy to dobre podejście?
Kolejnym aspektem jest skreślanie powielonych studentów z prezentowanej tabeli ponieważ student może wybrać trzy uczelnia a zostać przydzielony tylko do jednej. Z drugiej strony jeżeli w uczelni którą najbardziej preferuje nie będzie już miejsc może zostać przydzielony do uczelni której nadał niższy priorytet. Reasumując jeżeli na danej uczelni której student nadał najwyższy priorytet braknie miejsc ma zostać przydzielony do kolejnej której nadał niższy priorytet. We wszystkich kolumnach reprezentujących uczelnie ma być widoczny jako skreślony poza tą w której został przydzielony. Nie wiem jak rozwiązać taki problem? Wydaje mi się że potrzebuję kolejnego dokumentu w którym będę przechowywał informację o przypisaniu danego studenta do uczelni i na jego podstawie będę dokonywał przypisania według priorytetów. Jak myślicie?
Z góry dziękuję za każda odpowiedź.