Hej, robie strone w stylu wikipedii, czyli mam jakis artykul i chcialbym moc pozwolic uzytkownikom go edytowac. Ja jako moderator powinienem wybierac jakie zmiany dopuszczam a jakie nie oraz przechowywac historie wszystkich zmian (odrzuconych i zaakceptowanych). Wstepnie wyobrazam to sobie tak:
- ktos wchodzi na strone -> klika edytuj -> otwiera mu sie edytor z obecna zawartoscia strony
- wprowadza swoje zmiany, klika "przeslij do akceptacji" i ja jako administrator widze w bazie dla danego artykulu zmiane w polu "pendingChanges" (np.
array
przechowujacy{author: User, content: string}
czyli wszystkie oczekujace zmiany oraz ich autorow. - moge sobie porownac (np. uzywajac https://www.npmjs.com/package/react-diff-viewer) obie wersje (cos w stylu gita) i albo zaakceptowac albo odrzucic zmiane
Problem pojawia sie jesli np. rozni uzytkownicy zaproponuja rozne zmiany do tego samego artykulu i wtedy w pendingChanges
mam dwie zmiany i nawet jak jedna zaakceptuje porownujac do obecnego artykulu (pierwsza ktora wplynela) to bedzie mi ciezko porownac ta druge zmiane bo ona jest oparta o artykul jeszcze sprzed pierwszej zmiany.
Jak to poprawnie rozwiazac? Jak mniej wiecej ustrukturyzowac baze danych zeby wygodnie przechowywac oczekujace i zaakceptowane zmiany i je porownywac? Bede wdzieczny za wszelkie sugestie dotyczace metodologii i potencjalnych bibliotek