Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] Chat?
Forum PHP.pl > Forum > Przedszkole
b4x
Witam mam pytanie - jak połączyć dwóch użytkowników do jednej rozmowy.

Mam bazę:

Użytkownicy

id | last_ping | status

* id - randomowo generowany string, który identyfikuje usera.
* last ping - chyba wiadomo...
* status [do rozpoznania, czy użytkownik szuka rozmowy, czy jest w trakcie rozmowy])

I powiedzmy że chcę jednego z drugim podłączyć do rozmowy... czyli np.

SELECT * FROM `uzytkownicy` WHERE `status` = "0" LIMIT 1 - 0 = szuka rozmowy.

Powiedzmy znajdzie mi: zo1c4e


Teraz chce zrobic tabele Rozmowy...

Ale kompletnie nie wiem jak zrobić by wyglądała ok, myślałem nad: id | user1 | user2 | status lub id | serialize(user1, user2) | status...

tongue.gif
Crozin
No to tak.

Przede wszystkim potrzebna jest jakaś tabela do przechowywania użytkowników. Powiedzmy:
id, username, status
Następnie potrzebna będzie tabela, w której zapisane będą wiadomości do danej rozmowy:
id, chat_id, user_id, contents, created_at
Potrzebne będą też kanały/chaty/okna rozmów (cokolwiek tam chcesz)
id
No i na koniec jeszcze trzeba powiązać użytkowników z rozmowami:
chat_id, user_id

Ewentualnie jeżeli jesteś pewien, że ograniczenie się do dwóch osób w rozmiowe nie zostanie nigdy złamane, możesz usunąć ostatnią tabelę i to powiązanie dać bezpośrednio w tabeli rozmowy.

Teraz rozpoczynając nową rozmowę, tworzysz nowy rekord w tabeli rozmów oraz dwa w tabeli powiązań. Z obsługą wiadomości na pewno sobie poradzisz. A jeżeli ma to być takie w miarę real-time, to przyda się jeszcze AJAX by w tle co np. 5 czy 10 sekund sprawdzać czy nie ma nowych wiadomości.
Merko
Jak dla mnie powinieneś zrobic tabele w bazie "odpowiedzi"
Tam będą ładowane wszystkie odpowiedzi każdego chata.
Ta tabela by miala taki wyglad | id | id_chatu | tresc | data |


Następna tabela "chaty" składała by się z | id | id_user1 | id_user2

id_chatu(z tabeli "odpowiedzi") == id(z tabeli "chaty")
user dodaje odpowiedz ona sie zapisuje w odpowiedzi a skrypt czyta z WHERE id_chatu = "id"




Może nie po polsku ale wydaje mi się ze poprawnie
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.