Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]System poczty wewnątrz serwisu
basstone
post 29.06.2012, 02:04:06
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 6
Dołączył: 20.12.2011

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


Witam

Chciałem się zapytać czy ktoś ma sensowny pomysł na rozplanowanie poczty wewnątrz serwisu - czyt. wiadomości wysyłanych do siebie między użytkownikami strony.

Otóż cały problem polega na tym, że użytkownicy będą mogli kasować wiadomości, zarówno wysłane jak i odebrane - i w tym miejscu pojawia się moje pytanie. Ponieważ, jeśli użytkownik wysyłający skasuje wiadomość z poziomu swojej skrzynki - to skasuje ją również adresatowi, i dokładnie taka sama sytuacja gdy zamienimy ich rolami.

Bardzo chciałbym uniknąć robienia dwóch kopii każdej wiadomości (jednej dla nadawcy, drugiej dla adresata). Czy miałoby sens trzymać w bazie wiadomość dopóki nie skasują jej obaj użytkownicy? Mam na myśli, żeby zrobić komórki usunieto_nadawca oraz usunieto_adresat. Jeśli nadawca usunie wiadomość to już nie wyświetlimy jej w jego skrzynce, ale całkowicie skasujemy dopiero gdy tak samo usunie adresat. Czy takie rozwiązanie ma sens? Może macie inne lepsze propozycje?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
krzywy36
post 29.06.2012, 07:52:10
Post #2





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


ale tak to chyba zazwyczaj działa, no bo po co było by ograniczone miejsce w skrzynkach "pocztowych" na stronach? wink.gif Inna opcja to po prostu dodatkowe pola w bazie dla kazdej wiadomości: widoczność dla adresata i widoczność dla nadawcy.


--------------------
pretty as a shit.
Go to the top of the page
+Quote Post
Shido
post 29.06.2012, 08:09:54
Post #3





Grupa: Zarejestrowani
Postów: 121
Pomógł: 22
Dołączył: 22.06.2012

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


Cytat(basstone @ 29.06.2012, 03:04:06 ) *
Bardzo chciałbym uniknąć robienia dwóch kopii każdej wiadomości (jednej dla nadawcy, drugiej dla adresata). Czy miałoby sens trzymać w bazie wiadomość dopóki nie skasują jej obaj użytkownicy? Mam na myśli, żeby zrobić komórki usunieto_nadawca oraz usunieto_adresat. Jeśli nadawca usunie wiadomość to już nie wyświetlimy jej w jego skrzynce, ale całkowicie skasujemy dopiero gdy tak samo usunie adresat. Czy takie rozwiązanie ma sens? Może macie inne lepsze propozycje?


U siebie kozystam z podobnego rozwiązania.
Tylko przy czymś takim trzeba zrobić w ten deseń:
Usuwa nadawca:
Skrypt sprawdza czy adresat też usunął, jeżeli tak to usuwa wiadomość, jeżeli nie to usunieto_nadawca = 1;
Usuwa adresat:
Skrypt sprawdza czy nadawca też usunął, jeżeli tak to usuwa wiadomość, jeżeli nie to usunieto_adresat = 1;

Cytat(krzywy36 @ 29.06.2012, 08:52:10 ) *
Inna opcja to po prostu dodatkowe pola w bazie dla kazdej wiadomości: widoczność dla adresata i widoczność dla nadawcy.

Też jakieś wyjście, ale po co miejsce marnować?


Ten post edytował Shido 29.06.2012, 08:11:00


--------------------
Sorka za błędy ort. jak coś dajcie znać na PW to popoprawiam.
Go to the top of the page
+Quote Post
bpskiba
post 29.06.2012, 08:13:52
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Dobrym rozwiązaniem może być mechanizm, który zamiast kasować wiadomość przenosi ją do innej bazy danych. Wtedy masz bazę danych "wiadomości usunięte" o niskim priorytecie bezpieczeństwa, którą można okresowo zgrywać na płytkę i truncate.... oraz drugą bazę korespondencji aktywnej o wysokim priorytecie bezpieczeństwa (czyli backupu) . Jednocześnie rozmiar zostaje pod kontrolą
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:29