Jak przechowywane są dane na serwerze?

0

Witam,

chciałbym się spytać, jak ogólnie przyjęte jest przechowywać dane na serwerze [Android]? czy w bazach MySQL, czy są jakieś lepsze rozwiązania dla aplikacji mobilnych?

1

czy są jakieś lepsze rozwiązania

O rozwiązanie gorsze od MySQL trudno :D Dowolne inne będzie ok.

0

to czego na ogół używa się w aplikacjach mobilnych? bazy sqlite? tylko że z tego co rozumiem, to one tworzą plik lokalnie na urządzeniu, a mi potrzeba ciągłej integralności między różnymi telefonami
zależy mi na tym, żeby np. po wpisaniu danej liczby, wczytało mi różne informacje, ale żebym mógł także modyfikować te informacje z poziomu telefonu i dodawać nowe dane

0

Biorąc pod uwagę treść i formę pytania można polecić 3 rozwiązania:

  • MySQL/MariaDB - zwykle już jest albo łatwo zainstalować, pierdylion tutoriali
  • PostgreSQL - pierwszy prawdziwy serwer SQL na liście
  • MongoDB - nie idealny, ale bardzo popularny serwer NoSQL

Oczywiście jest tego dużo więcej, ale będą mniej popularne, albo będą kosztować.

0

Jeżeli chcesz współdzielić dane pomiędzy urządzeniami to potrzebujesz zewnętrznego serwera z bazą danych. Zainteresuj się gotowym rozwiązaniem takim jak Firebase, na google masz dziesiątki tutoriali.

0

już mam postawiony zewnętrzny serwer z Ubuntu na AWS, założyłem tam także bazę danych MySQL i połączyłem ją z tym serwerem i mogę ją obsługiwać korzystając z phpmyadmin, ale zastanawiałem się, czy dobrze postępuję
łączenie z bazą danych bezpośrednio przez JDBC też jest złe?

0

Połączyłeś bazę z serwerem? Znaczy się masz dwa? A aplikacja gdzie siedzi? Na jednym z nich (php/python/java/etc) czy na telefonie (REST)?
Opisz architekturę.

0

jestem początkujący, więc mogę czasami coś pomieszać
mam serwer z Ubuntu, zainstalowałem tam phpmyadmin i podłączyłem pod niego bazę danych MySQL, aplikację robię w Android Studio

0

@MrCode: zacznijmy od pytania jakie dane? Różne rodzaje danych można, należy wręcz, przechowywać w różny sposób. Jeżeli są to dane, które wymagają zachowania spójności, to baza SQLowa jest dobrym rozwiązaniem. Jeżeli są to dane, które tak naprawdę są dokumentami np. zapis stanu gry, lista zadań itp., to zapisanie ich w bazie nosql będzie OK.

0

Mam zamiar zrobić aplikację która służy jako plan lekcji, będzie opcja zrobienia planu lekcji i podzielenia się nim z uczniami, każdy plan lekcji będzie miał unikalny kod, jeżeli użytkownik A stworzy plan lekcji i wyśle unikalny kod swojego planu do użytkownika B, to użytkownik B wpisze kod w specjalne miejsce i otworzy mu się ten plan lekcji, jaki sposób przechowywania danych będzie najlepszy? chciałem to zrobić z użyciem MySQL i JDBC, ale chciałem się najpierw dowiedzieć jakich rozwiązań używają w firmach, żeby od początku uczyć się dobrych nawyków

0

Do tego bym użył MongoDB. Łatwe, przyjemne, wręcz wymyślone do składowania tego typu danych.

0

a jak wysyłać/odbierać dane z tej bazy danych? bezpośrednio z urządzenia przez JDBC? bo czytałem, że nie powinno się przez JDBC bezpośrednio łączyć z bazą danych

0

@MrCode - Po pierwsze skorzystaj z Firebase, ponieważ to oszczędzi wiele pracy. Po drugie jeżeli chcesz już zrobić wszystko sam, to aplikacje mobilne (i nie tylko) komunikują się z zewnętrznymi serwerami za pomocą usług internetowych tzw. web service: https://en.wikipedia.org/wiki/Web_service. Po trzecie skorzystaj naprawdę z Firebase.

0

O REST api to Ty słyszałeś?

0

@scibi92: nie słyszałem

0

No to polecam poczytać. Jeśli chcesz skorzystać z MongoDB jak polecał @Koziołek to polecam Spring Data MongoDB. "Smutna" wiadomość jest taka że będziesz musiał nauczyć się troche webówki :P

1
MrCode napisał(a):

@scibi92: nie słyszałem

Jeżeli chcesz zrobić aplikację mobilną, to skup się na jej pisaniu, zamiast na uczyć się webówki. Nawet sobie nie zdajesz sprawy, ile jest przy tym roboty i nauki. Takie aplikacje piszą całe zastępy ludzi, a nie pojedyncze osoby. Oczywiście da się to zrobić w pojedynkę, ale nie ma sensu na samym początku porywać się z motyką na słońce. Jeżeli zdecydujesz się na zbudowanie własnej usługi sieciowej to będziesz musiał myśleć o wielu sprawach począwszy od autentykacji, po kopię zapasową bazy danych. Zamiast wszystko robić sam skorzystaj z Firebase.

0

kształtuję się pod kątem Android/Java Junior Dev, wszędzie w ofertach pracy wymagają znajomość "REST", "API" i tym podobnych, na pewno Firebase będzie dobrym rozwiązaniem?

2

REST jako klient . Wiesz jest całe mnóstwo dostępnych API, możesz zrobić klienta do Githuba. poza tym nie zgadzam się do końca z @Haskell nie musisz od razu uczyć się wszystkiego i robić bardzo trudnego API.

0

czyli Firebase załatwi mi sprawę serwera, a ja będę musiał tylko napisać klient aplikacji?

0
MrCode napisał(a):

kształtuję się pod kątem Android/Java Junior Dev, wszędzie w ofertach pracy wymagają znajomość "REST", "API" i tym podobnych, na pewno Firebase będzie dobrym rozwiązaniem?

W ogłoszeniach na Android Dev znajomość REST API dotyczy w większości przypadków umiejętności korzystania, a nie tworzenia własnego. W przypadku Java Dev z kolei chodzi zarówno o tworzenie, jak i korzystanie.

MrCode napisał(a):

czyli Firebase załatwi mi sprawę serwera, a ja będę musiał tylko napisać klient aplikacji?

Tak, dokładnie. Korzystając z Firebase masz ogarnięty cały serwer, wystarczy, że nauczysz się z niego korzystać. Myślę, że takie podejście jest bardziej praktyczne, w przypadku nauki Androida. Dopiero w następnej kolejności warto bardziej wchodzić w tę tematykę.

0

Rób na Mysql. Pół świata na tym stoi (hosting php + mysql). Gdyby udało Ci się zapchać serwer mysql, to już będziesz taki gość, że zlecisz komuś przenieść to gdzie indziej. Najważniejszy argument - już zacząłeś w ten sposób, to szlifuj dalej.

Edit: tu napisałem bzdury, bo nie znam się na Androidzie: Jdbc może być, ale nudne. W kolejnym kroku przesiądź się na hibernate lub jpa.

0

A żeby korzystać z API muszę znać jakieś dodatkowe frameworki? (np. Spring?)

0

W przypadku Androida żeby korzystać z API wystarczy znajomość samego Android Framework oraz bibliotek: Retrofit oraz Gson.

0

a Firebase mam traktować jako API?

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