PM System

Hallo und Guten Morgen,
ich implementieren nebenbei ein PM-System. Nun komme ich an den Punkt wo der Nutzer nicht 50000 Nachrichten emfangen darf sondern hier ein Kontingent an Speicherplatz zur Verfügung gestellt bekommen soll.

Wie kann ich das am besten realisieren, um den Benutzer die eigene Verwaltung der Nachrichten zu überlassen, so das die DB nicht völlig auseinander bläht ...

Habt Ihr Ideen, oder Ansätze ?
 
Wäre es da nicht am einfachsten, einfach dem Benutzer zu seinen Userdaten noch einen Eintrag mit einem MaxValue für Nachrichten zu geben? Bzw, falls du verschiedene Benutzergruppen hast, dann mache es gruppenabhängig, kann ja doch sein, dass Administratoren mehr PMs empfangen können sollen als normale Benutzer ;)

Beim verschicken brauchst du dann doch nur prüfen, ob bei dem Empfänger die aktuelle Anzahl von Nachrichten < MaxValue ist und falls nicht dann eine entsprechende Meldung ausgeben.
 
Das ist soweit korrekt, nur hat der Benutzer 3 Bereiche

1. Eingang
2. Gesendet
3. Papierkorb

empfangen kann er ja unbegrenzt, bzw. je nach "shit Storm" kann da viel eingehen ... ;)

Hier kann ich ja keine Begrenzung, oder Kontrolle walten lassen, wenn ja wüßte ich nicht wie.

Das mit der Meldung setze ich um, bzw. hatte ich mir schon gedacht. Hier kann ich ja sagen: "Ey junge, lösch erst einmal bevor due senden willst."

Dem Sender kann ich aber nicht sagen: "hey Du der Posteingang Deines Empfänger ist leider voll, versuche es später noch einmal!"

Wäre doch doof, oder nicht! Sprich ich muss hier tempörär die Nachrichten speichern!
 
Dem Sender kann ich aber nicht sagen: "hey Du der Posteingang Deines Empfänger ist leider voll, versuche es später noch einmal!"

Warum nicht? Ich kenne das von einigen Plattformen so. Solange es eine aussagekräftige Meldung gibt, aus der auch hervorgeht, dass die Mail aufgrund des vollen Postfachs nicht ankommt, ist das doch ok. Alles Andere wäre gleichbedeutend mit "es gibt keine Beschränkung".

Beim Papierkorb könnte man ja sagen, dass der in gewissen Zeitabständen automatisch geleert wird, dann kann dieser maximal Maxnachrichten*Tage_Vorhaltezeit voll sein.

Bei den gesendeten Nachrichten muss man dann natürlich mal gucken, ob man die auch regelmäßig automatisch leert., wobei hier die Nachricht ja auch maximal einmal in der DB vorhanden sein sollte. Sender und Empfänger können die ja gleichermaßen aufrufen. Somit dürfte deine DB gar nicht so sehr zumüllen.
 
Bei den gesendeten Nachrichten muss man dann natürlich mal gucken, ob man die auch regelmäßig automatisch leert., wobei hier die Nachricht ja auch maximal einmal in der DB vorhanden sein sollte. Sender und Empfänger können die ja gleichermaßen aufrufen. Somit dürfte deine DB gar nicht so sehr zumüllen.

Wobei du hierbei beim Löschen drauf achten musst, dass der Datenbank-Eintrag erst verschwindet, wenn sowohl der Sender sie aus seinem "gesendeten Nachrichten"-Ordner als auch der Empfänger in seinem Posteingang-Ordner gelöscht hat... vorher darf nur ein Flag gesetzt sein, dass Sender oder Empfänger sie bei sich gelöscht haben...
 
Alles Andere wäre gleichbedeutend mit "es gibt keine Beschränkung".
Das ist auf keinen Fall gewünscht!

Wobei du hierbei beim Löschen drauf achten musst, dass der Datenbank-Eintrag erst verschwindet, wenn sowohl der Sender sie aus seinem "gesendeten Nachrichten"-Ordner als auch der Empfänger in seinem Posteingang-Ordner gelöscht hat... vorher darf nur ein Flag gesetzt sein, dass Sender oder Empfänger sie bei sich gelöscht haben...
Danke für den Hinweis

Aber so richtig kann ich mich mit dem ganzen noch nicht so anfreunden, denn wenn mir jemand was senden will, soll er das ohne gesagt zu bekommen ... "geht nicht weil...".

Ich denke das ich eher dazu übergehen werden, wenn der Posteingang des Empfängers voll ist, bekommt dieser eine Meldung in der Form.
Es liegen neue Nachrichten vor! Leider ist Ihr Posteingang überfüllt! Bitte leeren Sie diesen auf das erlaubte soll, um die neuen Nachrichten zu erhalten.

Der Sender bekommt auch parallel eine Nachricht, wurde gesendet..., voller Posteingang beim Empfänger ..., wartet auf Abholung... !

Sollte der Empfänger nach X-Tagen dem nicht nachkommen, wird der Sender informiert mit der gesendeten Nachricht und beim Empfänger wird das entsprechende gelöscht.

Der Papierkorb ist in Abhängigkeit mit dem Gesendet und Eingang.
Um zu löschen dürfen auch nur hoch x im Papierkorb sein, sonst kann die Nachricht nicht aus dem Eingang|Gesendet in den Basket verschoben werden.

So oder so ähnlich ...
Ich glaube ich denke aber noch einmal darüber nach ...

Bin aber weiter an einer Diskussion, bzw. an Anregungen interessiert!
 
Am einfachsten wäre es, wenn du strikt immer die ältesten Nachrichten löscht.
Zusätzlich könnte man dem User auch noch die Option geben, Nachrichten als wichtig zu kennzeichnen, damit diese erst gelöscht werden, wenn nur noch wichtige Nachrichten übrig sind.
Oder man schickt dem User bei z.B. 995 PMs eine Warnung, dass bei 1000 Schluss ist und daher der User sein Postfach mal aussortieren soll, ansonsten werden ältere Nachrichten gelöscht.

Sowas wie nach X-Tagen-löschen, wenn keine Aktion erfolgte, ist glaube ich ein wenig zu umständlich in der Umsetzung, würde ich also eher vermeiden.

mfg
 
Zurück
Oben