![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 658 Pomógł: 95 Dołączył: 20.12.2005 Skąd: N54,35° E18,63° (Gdańsk) Ostrzeżenie: (0%) ![]() ![]() |
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... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował b4x 5.04.2009, 17:37:32 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 10.10.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:22 |