Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL]Skrypt znajomych: jak zaprojektować bazę?
cycofiasz
post
Post #1





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
hateman
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 18
Dołączył: 28.04.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


tylko wtedy trzeba zapamiętywać relacje w dwie strony
że A jest znajomym B i B jest znajomym A
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@hateman no co ty. przyjrzyj sie temu jeszcze raz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Piotrwusek
post
Post #5





Grupa: Zarejestrowani
Postów: 399
Pomógł: 7
Dołączył: 11.06.2007
Skąd: Poznan

Ostrzeżenie: (20%)
X----


To chyba logiczne bo nie ma chyba takiej sytuacji że A jest znajomym B ale B nie jest znajomym A
Go to the top of the page
+Quote Post
cycofiasz
post
Post #6





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jeden rekord. Jeden wpis daje nam informacje o obu znajomych


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Aby pobrać znajomych użytkownika o id=1 robisz zapytanie:
  1. ...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.
Go to the top of the page
+Quote Post
hateman
post
Post #9





Grupa: Zarejestrowani
Postów: 86
Pomógł: 18
Dołączył: 28.04.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 24.09.2008, 08:14:11 ) *
Aby pobrać znajomych użytkownika o id=1 robisz zapytanie:
  1. ...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 :/
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Jakbyś poszukał to byś wiedział. Wystarczy dać warunek:
  1. ...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.

Ten post edytował phpion 24.09.2008, 07:34:06
Go to the top of the page
+Quote Post
cycofiasz
post
Post #11





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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?

Ten post edytował cycofiasz 29.11.2008, 21:56:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 06:26