Skocz do zawartości
piotrsg

"Ulubione" rekordy z bazy mySQL

    Rekomendowane odpowiedzi

    Hej, mam taki problem i nie wiem jak do niego podejść.

    Mam tabelę w bazie danych, np z linkami. Apka wyświetla listę tych linków. Chcę dodać aktywność która będzie wyświetlać TYLKO zaznaczone przez użytkownika linki.

    Np. MainActivity - RecyclerView z lista ciągniętych z mySQL rekordów, po kliknięciu otwiera nam nowa aktywność wyświetlająca stronę z linku plus np FAB którym dodajemy link do ulubionych.

    UlubioneActivity - recyclerView z "ulubionymi" linkami.

    Na czym mi zalezy: aby nie pobierać tych danych do np SQLlite tylko żeby były pobierane z bazy mySQL.

    Np każdy link ma swoje ID i żeby gdzieś przechowywać te ID i na ich podstawie robić zapytanie do bazy danych. Gdyby chodziło o jeden rekord to zrobiłbym SharedPreferences i po sprawie ale jak ogarnąć więcej rekordów. Do tego jakiś link możemy przestać lubić i wyrzucić go z listy więc taką sytuacje też muszę wziąć pod uwagę.

    Jakiś pomysł? Bardziej chodzi mi o rozwiązanie niż kod.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dodaj nową tabelkę w MySQL, która będzie zawierać id użytkownika i id linku. Nowy ulubiony link to nowy wpis w tej tabeli ?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Nie chcę z aplikacji niczego wysyłać do mySQL i nie chce trzymać na serwerze żadnych danych użytkowników.

    Gdyby chodziło tylko o jeden link to zapisałbym id rekordu do SharedPreferences, apka wysłałaby zapytanie do bazy, serwer wyrzuca JSON a ja go kulturalnie parsuje ;)

    np:

    SELECT * FROM `linki` WHERE id = 123;

    W sytuacji gdy mamy kilka takich "ulubionych" zapytanie mogłoby wyglądać tak:

    SELECT * FROM `linki` WHERE id = 1 OR id = 2 OR id = 3 OR id = 11;

    I teraz pytanie, gdzie trzymać te "ulubione" id? W SQLite? A potem robić z nich zapytanie?

    Jakoś mało elegancko ;) 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Trzymanie takich danych w SQlite jest bardziej eleganckie niż w SharedPreferences. Ale to nie zmienia faktu że w SharedPreferences możesz trzymać całą listę ulubionych linków ;)
    BTW. zapytanie, które pozwala na pobranie "ulubionych" można napisać łatwiej:

    SELECT * FROM `linki` WHERE id IN (1, 2, 3, 11);

     

    • Piwko! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Piwko za SQLa ;)

    Zapomniałem o operatorze "IN" no ale jak się korzysta tylko okazjonalnie to się zapomina czego uczyli w szkole ;)

     

    Dobra, na razie zostawiam temat i biorę się za kodzenie ;) ale myślę, że jeszcze do niego wrócimy jak się pojawia problemy z kodem ;)

    Jeszcze raz dzięki za podpowiedź z sqlem ;)

    Edytowane przez piotrsg

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x