![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie jest znane z IPB i wielu innych serwisów.
Osoba A wysyła prywatną wiadomość #1 do B. Osoba B odpisuje na wiadomość #1 i widzi ją na tej samej podstronie (#2 pod #1). Osoba A widzi wątek #1 jako NOWY. Wchodzi do środka. Tam widzi wiadomości - #1 (swoją) i #2 od osoby B. I tak dalej... W skrócie: wiadomości są wyświetlane jako wątki - jak na forum. Dotychczas skrypt wyświetlał wiadomości osobno. Pola w bazie danych: + ID - ID wiadomości + topic - tytuł + owner - właściciel wiadomości, zazwyczaj odbiorca (ten, którego konto obciąża) + usr - odbiorca lub nadawca (w zależności od statusu) + st - status (1 - nowa, 2 - przeczytana, 3 - szkic, 4 - kopia) + date - data wysłania + txt - treść W IPB prawdopodobnie istnieje dodatkowa tabela dla wątków. Ja próbuję zrobić to bez tworzenia dodatkowej tabeli. Założenie: jak najmniejsza ilość pól. Dodałem nowe pole - th - numer wątku, czyli ID wiadomości nadrzędnej. Warunek do listy wiadomości w folderze ODEBRANE (dla użytkownika o ID=1):
Zakładam, że wiadomości nadrzędne mają wartość pola th równą 0. Zapytanie wyświetlające konkretny wątek o ID=5 dla użytkownika o ID=1:
Wszystko wyświetla się dobrze, ale przejdźmy teraz do wysyłania wiadomości: Wg moich przemyśleń odbiorca musi otrzymać osobną kopię wiadomości. Może to jest błędne założenie? Już tłumaczę, o co chodzi. Zarówno odbiorca i nadawca widzą całą swoją korespondencję - wiadomości wysłane i odebrane. Pewnego dnia jedna ze stron chce wyczyścić swoją skrzynkę. Mając tylko 1 kopię wiadomości, będzie to niemożliwe, gdyż wiadomości od niej straci druga osoba (a ona chciała sobie je zatrzymać dla siebie). A więc nadawca przymusowo otrzymuje kopię listu, który wysłał. Wtedy do konfliktu nie dojdzie ![]() Znacie inne, lepsze rozwiązania, aby zaoszczędzić miejsce? Zaczynają się schody Jak pamiętamy, wiadomości nadrzędne muszą mieć th=0. Wiadomość #1 u osoby B ma inne ID niż u osoby A (bo to oddzielne kopie). Osoba B chce odpisać osobie A. Tylko jest problem. Nie znamy ID wątku u użytkownika A. Gdybyśmy zapisali go w polu "th", osoba B nie zobaczyłaby wątku nadrzędnego na liście w folderze "Odebrane". A przecież odpowiedź ma pojawić się u A pod jego wiadomością, którą wysłał do B. Jakie zatem proponujecie rozwiązanie tego problemu? Mogę pokombinować z polem st (status) - tak, aby w polu th mógł znaleźć się ID wątku. Prostszym wyjściem jest stworzenie nowej kolumny w tabeli (też jest kilka opcji). Może służyć do połączenia z innymi wiadomościami lub określenia, czy jest nadrzędną wiadomością... Jaka jest Wasza wizja? PS. Czy w ten sposób nie złamię patentu na wyświetlanie wiadomości jako wątków? Czy dotyczy on tylko telefonów komórkowych i SMS-ów? Ten post edytował WebCM 12.02.2010, 00:36:40 -------------------- „Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 03:59 |