![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Chciałem zapytać jak najlepiej zaprojektować moduł prywatnych wiadomości (PHP + MySQL). W systemie wyróżniamy następujące role użytkowników: - Klient: - Specjalista - Starszy Specjalista - Administrator Zasada działania: - Klient może wysłać maila tylko do Specjalistów. Wysłana wiadomość jest widoczna przez wszystkich specjalistów i starszych specjalistów. - Specjalista, Starszy Specjalista i Administrator mogą wysyłać do wiadomości zarówno do jednego klienta, kilku, jak i do wszystkich. Widomość widoczna tylko przez adresatów. Widzą zarówno wiadomości grupowe, jak i prywatne. Pytanie: 1. Jak najlepiej zaprojektować i zrealizować działanie (logika) opcje, że wszyscy pracownicy powinni widzieć wiadomość od użytkownika. 2. Gdzie najlepiej umieścić informację o autorze i odbiorcy wiadomości, w jakiej tabeli 3. Grupowe odczytywanie wiadomości, czy tworzyć dodatkowe aliasy, czy wykorzystać istniejące grupy użytkowników, lub inny pomysł Przykładowe opcje, ale może moglibyście podsunąć lepszy pomysł. Baza 1. Tabela user - id - name - group_id 2. Tabela wiadomości - Wstępnie bez autora i odbiorcy, tylko tytuł, treść, data - id - rodzic_id - tytuł - treść - data utworzenia OPCJA 1 Dodatkowa tabela z relacją wielu do wielu Tabela wiadomość_status - id - wiadomość_id - user_id - folder ENUM (odebrane, wysłane, kosz, spam) - status ENUM (autor, odbiorca) Tylko że takie rozwianie powoduje że jeżeli użytkownik wyśle wiadomość, musiałbym wstawić - jeden rekord z dostępem dla użytkownika - kilkanaście rekordów, dla pracowników, oddzielny rekord dający dostęp do wiadomości dla każdego pracownika. Plus jest taki, że wtedy każdy użytkownik może zmienić folder widomości tylko dla siebie. OPCJA 2 Dodanie typu widomości, czy grupowa, czy indywidualna. Jeśli wiadomość wysłana do grupy to wtedy wpisuje w pole group_id, jeżeli do pojedynczego użytkownika, lub do kilku, wtedy wpisuje w user_id Tabela wiadomość_status - id - wiadomość_id - typ ENUM (grupowa, indywidualna) - group_id - user_id - folder ENUM (odebrane, wysłane, kosz, spam) - status ENUM (autor, odbiorca) Inne opcje lub jakiś ciekawy wpis w Internecie opisujący logikę działania. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:00 |