Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]System znajomości, Problem i pytanie z systemem znajomości
wolacinio
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 1
Dołączył: 2.06.2009

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


Witam serdecznie.
Mam pytanie jak rozwiać jeden problem z systemem znajomości ,teraz opisze problem:
Posiadam dwie tabele uzyt i znajomi

Użyt
ID|Imie
1|Piotr
2|Pawel
Znajomi

ID|ID_wysylajacego|ID_znajomego|Znajomy
1|1|2|tak

Wyszukuje w z bazy danych znajomych użytkownika o ID = 1
No to bedzie cos takiego
  1. SELECT T2.Imie
  2. FROM znajomi AS T1,uzyt AS T2
  3. WHERE T1.ID_wysylajacego = '1' AND T2.ID = T1.ID_znajomego AND T1.Znajomy = 'tak'

Możliwe ze sa błedy po pisałem "od ręki"

Wszystko działa lecz do czasu otoz to zapytanie zwróci Imie tego znajomego co mnie cieszy,lecz co by było jak by to uzytkownik 2 (Pawel) zaprosił uzytkownika 1(Piotr) ? w tedy nie wyswietli sie (IMG:style_emoticons/default/sad.gif)
Ja miałem no to taki sposób ze tworze dwa zapytania jedno to to powyzej a drugie to wyszukuje znowu w ID_znajomego ID = 3 a ID_wysyłajacego przypisuje to drugiej tabeli
Chodzi to ale ja bym chciał to za pomocą jednego zapytania zrobić ? a moze wogole inaczej zaprojektować baze ?
Nie prosze o zrobienie tego za mnie lecz jakas wskazówkę,podpowiedź (IMG:style_emoticons/default/winksmiley.jpg) byłbym bardzo bardzo wdzięczny (IMG:style_emoticons/default/winksmiley.jpg)

Pozdrawiam Paweł

Ten post edytował wolacinio 24.09.2010, 19:22:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
blahy
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 22
Dołączył: 20.07.2010

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


wg mnie najlatwiej to zrobic tak:
1 tabela: user, pola id, imie
2 tabela znajmosci, pola: user_id, znajomy_id, zaakceptowany , gdzie user_id to id uzytkownika, ktory prosi o zawarcie znajmosci, a znajomy_id to id usera ktorego chce zaprosic.
W momencie gdy uzytkownik o id 1 (nazwijmy go Tomek) chce zawrzec znajomosc z uzytkownikiem o id 2 (Franek) to do tabeli znajmosci dodawany jest wpis 1,2,0. W tym momencie Tomek nie ma Franka jako znajomego (zaakceptowany = 0) ale Franek bedzie widzial, ze Tomek go zaprosil. Teraz Franek moze zaakceptowac zaproszenie. Gdy je zaakceptuje poprzedni wpis w tabeli znajomosci zmieni sie na 1,2,1 (zaakceptowano znajomosc. Tylko, ze jest to dzialanie jednostronne. W tabeli znajomosci informujemy ktory uzytkownik jest znajomym ktorego. Nie ma sensu bawic sie w podwojne zapytania. Wydaje mi sie ze lepiej zrobic tak: gdy Franek akceptuje znajomosc zmienic wpis utworzony przez Tomka tak jak napisalem wczesniej ORAZ dodac nowy wpis do tabeli znajomosci o tresci 2,1,1 (Franek bedzie znajomym Tomka - wpis aktywny). Teraz sa swoimi znajomymi. Wyszukujac wszystkie znajomy_id uzytkownika o danym user_id (np 1 dla Tomka) znajdziemy wszystkich jego znajomych, tak samo dla Franka (id 2) zostanie znaleziony uzytkownik o id 1. Trzeba tylko pamietac o aktualizacji tabeli w razie zerwania kontaktu, albo odrzuceniu akceptacji (dodatkowe pole) ale to juz dodatki
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 16.10.2025 - 00:39