Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/bd] Rozbudowany system wiadomości, budowa bazy
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Witajcie,
pisze na potrzeby pewnej aplikacji wewnętrzny system wiadomości wysyłanych między jej użytkownikami. Problem zrodził się w momencie w którym pojawiło się wymaganie dot. przenoszenia wiadomości miedzy folderami (np z wysłanych do kosza). Najłatwiej byłoby zrobić dla każdego folderu oddzielną tabelę...ale co jeśli user chce sobie sam stworzyć folder. Można zrobić jedną tabelę (na kosz,wysłane,odebrane razem i dać flagi w kolumnie folder), tylko tu też jest problem z folderami tworzonymi przez użytkownika. Znacie jakieś zgrabne rozwiązanie tego problemu ?

Ten post edytował jastu 10.09.2007, 07:30:26
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


tabela folder
tabela wiadomosci z kolumna folder_id
Go to the top of the page
+Quote Post
Ociu
post
Post #3





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Nic innego jak kategorie w newsach czy artach.
id | name <- folders
mess_id | mess_name | folder_id <- messages
Go to the top of the page
+Quote Post
jastu
post
Post #4





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Odgrzewam...
jak rozwiązać problem wiadomości która u jednego użytkownika widnieje jako wysłana a u innego jako odebrana ? Jeśli jeden z nich usunię tą wiadomośc to zniknie ona z list obu użytkowników (zakładając że przechowujemy wszystko w jednej tabeli) ?

Wiem że można to zrobic przez widoki czy wyzwalacze, ale szukam najprostszego rozwiązania na które zazwyczaj wpadamy po długiej walce z problemem.

Zachęcam do dyskusji !
Go to the top of the page
+Quote Post
qqrq
post
Post #5





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


Robisz tabelkę haszującą:

user_mess
=======
user_id
message_id
status

I wstawiasz status, czyli jak się dany użytkownik ma do danej wiadomości.

Co do 2. problemu - zamiast usuwać wiadomości zmieniaj ich status. Wtedy dla jednych będą "usunięte", a dla innych nie. Problem tylko, że zaśmiecisz bazę.
Go to the top of the page
+Quote Post

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.09.2025 - 18:58