Czy w projekcie sprawdzi się baza NoSql

0

Hej,
Mam do was pytanie. Tworze Restowe API w Springu z płaczeniem do bazy danych. Do tej pory używałam postgres'a. Ale zastanawiam się czy może MongoDB nie sprawdziłoby się lepiej w tej architekturze.

Encje :
a). User
b) Projekt
c) Member
d) Relation

Relacje:
User 1 --- " Projekt
Projekt 1 --- " Member
Projekt 1 --- " Relation

Jest jeszcze połączenie między Relation a Member a nawet 3.
Relation posiada pola:
Member memberLeft. (ManyToOne)
Member memberRight. ( ManyToOne)
List<Member>. children. ( OneToMany)

Gdyby oznazyć User jako @Document, to cała reszta mogłaby pięknie się tam zawrzeć. Pytanie tylko czy jest to dobre rozwiązanie ? Czy może jednak pozostać przy Postgresie ?.
Jeżeli chodzi o użycie.
To najczesciej podczas funkcji logowania do clienta uzytkownik będzie potrzebował uzyskać informacje z całego dokumentu. Wybierze projekt i później już pracował będzie na tym projekcie (dodawał osoby, relacje.. itd).

0

Do projektów na poziomie pet clinic wszystko się nadaje: https://github.com/spring-projects/spring-petclinic (mają nawet wersję na micro-services).

0

Zależy jak będziesz modelować relacje między encjami. MongoDB jest fajny, jeżeli relacja jest taka, że jeden dokument jest właścicielem innego i się zagnieżdża dokumenty w sobie. Oczywiście można sobie trzymać ID do innego dokumentu, jak tak wygodnie, ale jeżeli na początku będziesz wiedzieć, że będziesz robił coś na zasadzie joina to odpuściłbym sobie mongo

0

W sumie to planowalam zrobic jedynie Dokument ja Userze i Family. Aczkolwiek zastanaiwma sie jak obsluzyc refernecje w listach.

Family {
members : [ {1}, {2}, {3}, {4} {5} {6}]
relations:  [ {left =1,  right=5},  {left-6, right=2} ]
}

Pczywiscie tutaj 1,2,3.. to tak jakby id... wiadomo ze te obiekty beda wiekszze.. I teraz o ile Members wlasnie chcialabym pełne informacje, o tyle w relations, wystarczu mi odniesienie do Members. Czy cos takiego da się wykonac ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1