Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: prywatne wiadomości
Forum PHP.pl > Forum > PHP
peter13135
Przymierzam się do stworzenia prywatnych wiadomości, w związku z czym proszę o porady
1. wysyłam wiadomość, ja mam ją w wiadomościach wysłanych, a adresat w odebranych. Ja jako autor wiadomości kasuje wiadomość, a adresat nadal ma tą wiadomość w skrzynce. - Jak to uczynić questionmark.gif tworzyć dwie kopie wiadomości ? a może poprostu zrobić w bazie jedno pole autor_del, drugie adresat_del, (wartosc 1- skasowana, 0- nie skasowana) i co jakiś czas kasowac wszystkie gdzie oba pola mają wartość 1 questionmark.gif
2. jak zrobić limit wiadomości w skrzynce ?
webdice
Zrób sobie statusy wiadomości, przykładowo status:

Kod
0 - nie usunięta
1 - usunięta przez nadawce
2 - usunięta przez adresata


Jeśli któryś z użytkowników usuwa wiadomość, to sprawdzasz czy status jest różny od zera, jeśli tak to usuwasz wiadomość z tabeli.
cojack
Potrzebujesz mniej więcej czegoś takiego:
  1. CREATE TABLE "messages" {
  2. "idMessage" serial NOT NULL,
  3. "idUser" int REFERENCES "userTable"("idUser"), // odbiorca
  4. "subject" varchar(255) NOT NULL,
  5. "content" text,
  6. "readed" BOOLEAN DEFAULT false,
  7. "inTrash" BOOLEAN DEFAULT false,
  8. "dateRead" int
  9. }
  10.  
  11. CREATE TABLE "messages_send" {
  12. "idMessage" int REFERENCES "messages"("idMessage"),
  13. "idUser" int REFERENCES "userTable"("idUser"), // nadawca
  14. "dateSend" int,
  15. PRIMARY KEY( "idMessage", "idUser")
  16. }


Relacja typu jeden do wielu.

Można też zrobić np coś ala odpowiedź na wiadomość, wtedy należało by dodać kolejną tabelę "messages_replay" która by nawiązywała do "messages_send" ;]
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.