Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Znajomi w portalu społecznościowym
Forum PHP.pl > Forum > Przedszkole
djsalat
Witajcie:)

Chcę sobie napisać własny portal społecznościowy.

Zastanawiam się nad kwestią znajomych w portalu.

Jak oni są przechowywani?? Czy w bazie danych?? Tabela znajomi a niej dwie kolumny użytkownik i znajomy??
minolone
Witam. Zapoznaj się z tym Dolphin, to jest portal spolecznosciowy, dosc dobrze rozbudowany.
Fifi209
Moim zdaniem w momencie gdy nie wiesz jak zabrać się za takie banały możesz sobie duży serwis odpuścić.
djsalat
Cytat(minolone @ 2.07.2010, 20:09:31 ) *
Witam. Zapoznaj się z tym Dolphin, to jest portal spolecznosciowy, dosc dobrze rozbudowany.


ok gotowe skrypty... nie chce ... chcę coś sobie sam napisąc moze jakis szais ale swój.... dzieki za odp ale gotowy nie bałdzo:)

Cytat(fifi209 @ 2.07.2010, 20:10:37 ) *
Moim zdaniem w momencie gdy nie wiesz jak zabrać się za takie banały możesz sobie duży serwis odpuścić.


Oke twoje zdanie:) a jak ja chce i jestem zdeterminowany// banał questionmark.gif więc powiedz skoro nigdzie indziej nie ma??
topik53
jezeli chcesz skorzystac ze swojego pomysłu to zastanów się nad liczbą rekorów w tabeli znajomi
jezeli taki Zbyszek x bedzie miał 10 znajomych
to juz doda ci 20 rekordów
zbyszek x kolega 1
zbyszek x kolega 2
zbyszek x kolega 3
zbyszek x kolega 4
zbyszek x kolega 5
zbyszek x kolega 6
zbyszek x kolega 7
zbyszek x kolega 8
zbyszek x kolega 9
zbyszek x kolega 10
kolega 1 zbyszek x
kolega 2 zbyszek x
kolega 3 zbyszek x
kolega 4 zbyszek x
kolega 5 zbyszek x
kolega 6 zbyszek x
kolega 7 zbyszek x
kolega 8 zbyszek x
kolega 9 zbyszek x
kolega 10 zbyszek x
jezeli bedziesz mial 10000 userów to po jakims czasie w tabeli znajomi bedziesz mial ogromną ilość rekordów
muk4
@topik53
Niekoniecznie. Dla tabeli:

Cytat
id | user1 | user2
1 | 1 | 2
2 | 3 | 1


Wyszukanie ile user 1 ma znajomych może się sprowadzać do zapytania
  1. SELECT `id` WHERE `user1` = '1' OR `user2` = '1'
topik53
przyznaje... o tym nie pomyślałem sciana.gif
djsalat
No własnie wiem że tego będzie dużo ;/ więc się pytam.

myslałem też nad tym żeby zrobić tabele a w niej kolumne nazwa użykownika oraz na początek 100 kolumn:

  1. id | nazwa_usera | znajomy_1 | znajomy_2 | znajomy_3......
  2. 1 | a | b | c |d.....
  3.  
  4. 2 | b | a | c |d


tylko będą problemy z zapytaniami sql bo zrobie

select znajomy_1 where uzytkownik = 1

wynik w php porównam czy empty jeśli nie to

select znajomy_2 where uzytkownik = 1


// i jesli bedzie miał 98 znajomych to będę wysyłał zpytania do kolumny znajomy 98... co trochę czasu zajmie i dużo tekstu będzie.....

więc nie mam innego pomysła:(
muk4
Jak już wcześniej napisałem:
Cytat(muk4 @ 3.07.2010, 02:03:28 ) *
@topik53
Niekoniecznie. Dla tabeli:
Cytat
id | user1 | user2
1 | 1 | 2
2 | 3 | 1



Wyszukanie ile user 1 ma znajomych może się sprowadzać do zapytania
  1. SELECT `id` WHERE `user1` = '1' OR `user2` = '1'



Czyli robisz luźne powiązania między dwoma osobami.
djsalat
hmm...questionmark.gif nie podpowiecie??sad.gif
paxton
W tabeli każdego usera, w formacie JSON id znajomych smile.gif
Crozin
Po prostu dodatkowa tabela z ID obu użytkowników:
Kod
member_id | friend_id
Wyszukiwanie znajomych użytkownika #123:
  1. SELECT frient_id FROM friends WHERE member_id = 123;
Proste? Proste.
djsalat
a nie bedzie to bardzo zwalniało ładowanie strony bo przy 100 uzytkownikach majacych 100 znajomych to bedzie 10000 wpisów??
Crozin
A niech sobie będzie i milion - będzie to i tak bardzo szybkie.
!*!
Dlaczego miałoby to być 10000 wpisów? Jak zrobisz to na takiej zasadzie:
Kod
id | twójID | znajomyID |
1  | 22      | 44
2  | 44      | 22


To Ty widzisz znajomego o ID 44, a on Ciebie jako ID 22 i koniec. Później możesz to zaindeksować, zliczać przy count, czy co Ci się spodoba. To chyba jedno z lepszych wyjść (taka budowa bazy/tabeli), chociaż nie jestem pewien czy najlepsze. I przy ilości 100 znajomych należących do Ciebie (ID 22) masz 100 wpisów do bazy + drugie tyle Twoi znajomi.

EDIT:
Ok, mój błąd z tym zliczeniem.
Crozin
@!*!: po co ta kolumna ID? twojID + znajomyID mogą robić za klucz podstawowy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.