• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica aktualności w php i mysql

Object Storage Arubacloud
0 głosów
218 wizyt
pytanie zadane 25 października 2017 w PHP przez auradin Użytkownik (560 p.)

Cześć wszystkim. Pierwszy raz coś takiego robię i mam nie lada wyzwanie.

Zadanie tyczy napisania wyników czyli już samego skryptu tablicy, aktualności jak zwał tak zwał.

Test dotyczy strony, gdzie użytkownicy mogą dodawać siebie do obserwowanych. Jeśli więc zalogowany użytkownik posiada takich maja być sprawdzone aktualności wszystkich osób, które obserwuje -> jeśli takie aktualności istnieją np. z 7dni lub MAX LIMIT 100, to mają zostać wyświetlone. Kombinowałem na podstawie 2 tabel w mysql (obserwowani i aktualności), jeśli  ktoś obserwuje kogoś to ten wynik ma zostać wyciągnięty z bazy i zapisany w zmiennej, na jej podstawie zostaje wykonane kolejne zapytanie czyli pokazanie aktualności konkretnych użytkowników. I tu klops -> zmienna ma 1 wynik choć ktoś obserwuje 5 osób. Zapis kodu w pętli nadal nic nie zmieni a co gorsza kombinowanie z pętlami może doprowadzić do DDOS...

OK, myślę zatem może inaczej. Każdy użytkownik posiada oddzielną tabelę do której będą dublowane aktualności użytkowników których zalogowany obserwuje, a sama tabela będzie działać w pętli  i sama będzie usuwać stare rekordy lub ustawić limit taki sam jak przy otrzymaniu wyniku czyli np. 100. Może pogmatwałem coś ale, ktoś będzie wiedział o co tu chodzi. Pytanie, czy trzymać się pierwszej wersji i kombinować z relacyjną bazą i jej normalizacją, czy faktycznie drugi przykład będzie bardziej wydajny. A może sami robiliście coś podobnego i macie lepszy pomysł??

1 odpowiedź

+1 głos
odpowiedź 25 października 2017 przez CenterPL Pasjonat (19,070 p.)
3 tabele:

użytkownicy (id, nazwy itp, id aktualnosci)

obserwowani (id obserwujacego, id obserwowane) czyli konsekwencja relacji n-m

aktualnosci (id, id autora itp)

i używasz JOINów. Co więcej kwerenda nie będzie jakoś specjalnie skomplikowana ;)
komentarz 25 października 2017 przez auradin Użytkownik (560 p.)

Hmm.. na mysql aż tak dobrze się nie znam ale wiem o co mniej więcej chodzi. Jednak co jeśli do zapytania używam  zmiennych z php.. obojętnie czy chodzi o id czy nazwę (czegoś) zawsze zwraca 1 lub ostatni wynik. Może prościej, wystarczy dać zapytanie by pokazało wszystkie aktualności gdzie user != aktualnej sesji o limicie 100, i jeśli napotka na nazwę pasującą do obserwowanych ma podwiesić ich jako pierwszych według czasu dodania. Myślę, że mniej kombinowania z baza, zaś więcej z php, z dwojga wole to drugie.

Jednak normalizacja i tak mnie czeka do nauki ;/ xD

komentarz 25 października 2017 przez CenterPL Pasjonat (19,070 p.)
a jakiej funkcji używasz? W ogóle mam nadzieję, że korzystasz chociaż z pdo a nie mysql(i)_xxxx. Wtedy masz fetchAll i zwraca tablicę wyników.

Podobne pytania

+1 głos
2 odpowiedzi 285 wizyt
pytanie zadane 31 sierpnia 2018 w Nasze projekty przez Ergo Proxy Użytkownik (640 p.)
0 głosów
0 odpowiedzi 214 wizyt
pytanie zadane 2 czerwca 2019 w PHP przez Piotr Jarema Użytkownik (970 p.)
0 głosów
2 odpowiedzi 412 wizyt
pytanie zadane 28 listopada 2018 w PHP przez s4bek Użytkownik (600 p.)

92,567 zapytań

141,420 odpowiedzi

319,616 komentarzy

61,953 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...