Witam!
Od niedawna zacząłem poznawać Node.js i przy okazji poznałem MongoDB. Jak dotąd miałem do czynienia wyłącznie z bazami SQL i nie do końca rozumiem zamysł nierelacyjnych baz danych, a przede wszystkim relacji wiele do wielu.
Rozważmy to na przykładzie teoretycznej aplikacji do fiszek. W bazie danych przechowywał będę talie (zestawy) fiszek. Każdy użytkownik będzie mógł więc rozpocząć naukę z wybranymi zestawami i zapisywać swój postęp nauki. W relacyjnej bazie danych stworzył bym więc następujące tabele:
- fiszki,
- talie (w niej informacje o tym, które fiszki znajdują się w której talii / taliach),
- użytkownicy,
- postępy (tutaj informacje o tym, które fiszki dany użytkownik już zna, a których nie).
Jak jednak zrobić to w bazie nierelacyjnej. Zapewne stworzę kolekcję z zestawami, a wewnątrz dokumentu danego zestawu znajdą się wszystkie fiszki. (Co z ewentualnymi fiszkami, które znajdowały by się w wielu taliach?). Dodatkowo będzie kolekcja użytkowników.
W jaki sposób mogę zapisać postępy? Jak połączyć te dane? Za pomocą ID?
Czy przy tworzeniu aplikacji należy zastanowić się z jakiego typu bazy danych skorzystać, może MongoDB nie nadaje się do tego typu aplikacji i lepsza będzie baza SQL?
Z góry dziękuję za odpowiedź!