cycofiasz
23.09.2008, 20:29:49
Jak w tytule, załóżmy że mam tabelę `users` i każdy rekord = 1 użytkownik;
Chciałbym dodać opcję znajomych, jak np. na naszej-klasie, ale nie wiem za bardzo jaką tabelę stworzyć, czy też może wystarczą jakieś dodatkowe kolumny... Co o tym myślicie?
nospor
23.09.2008, 20:37:14
dodatkowa tabela, ktora bedzie trzymala powiązanie kto jest czyim znajomym:
Kod
tabela znajomi:
id_user1
id_user2
gdzie id_user1 i id_user2 to id z tabeli users. W ten sposob wiesz kto jest czyim znajomym
hateman
23.09.2008, 21:18:24
tylko wtedy trzeba zapamiętywać relacje w dwie strony
że A jest znajomym B i B jest znajomym A
nospor
23.09.2008, 21:21:15
@hateman no co ty. przyjrzyj sie temu jeszcze raz
Piotrwusek
23.09.2008, 21:21:24
To chyba logiczne bo nie ma chyba takiej sytuacji że A jest znajomym B ale B nie jest znajomym A
cycofiasz
24.09.2008, 06:51:22
Czyli jak user nr 1 dodaje usera nr2, i tamten to zaakceptuje, to należy stworzyć 2 rekordy ?
id usera 1 => id usera 2
id usera 2 => id usera 1
Czy po prostu jeden, ale za to przy odczycie znajomych pobierać id usera występujące przynajmniej w jednej z kolumn?
nospor
24.09.2008, 07:10:05
jeden rekord. Jeden wpis daje nam informacje o obu znajomych
phpion
24.09.2008, 07:14:11
Aby pobrać znajomych użytkownika o id=1 robisz zapytanie:
...WHERE id_user1=1 OR id_user2=1
i otrzymasz listę userów, których ten user dodał do swoich znajomych oraz tych, którzy jego dodali do znajomych.
hateman
24.09.2008, 07:27:08
Cytat(phpion @ 24.09.2008, 08:14:11 )

Aby pobrać znajomych użytkownika o id=1 robisz zapytanie:
...WHERE id_user1=1 OR id_user2=1
i otrzymasz listę userów, których ten user dodał do swoich znajomych oraz tych, którzy jego dodali do znajomych.
no a pozniej co?
dostaniesz array'a
z id_user1 i id_user2
i musisz sprawdzać który z nich to nasz "1"
dużo zbędnych operacji :/
phpion
24.09.2008, 07:33:31
Jakbyś poszukał to byś wiedział. Wystarczy dać warunek:
...IF(user_id1=1, user_id2, user_id1) AS friend...
i otrzymasz tylko listę id znajomych. Połącz sobie oba pomysły w całość, dodaj JOINa i po krzyku.
cycofiasz
29.11.2008, 21:45:52
Odkopię troszkę temat, bo nie wiem jak mam skonstruować to zapytanie żeby otrzymać tylko id userów którzy są znajomymi usera o podanym id.
Mam już
SELECT *
FROM `gal_znajomi`
WHERE `id_user1` =1
OR `id_user2` =1
Ale jak wyciągnąć tylko id userów różnych niż 1?
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.