koerschgen2001: tabellenentwurf für ein Private Nachrichten System

Ich habe vor(oder eher habe schon angefangen) auf einer Page im Pivaten Bereich der Member eine Funktion zum verschicken von Pivate Nachrichten an andere Member einzurichten.
Mein Tabellen-Grundgedanke sah so aus:

Alle Nachrichten werden in einer Tabelle gespeichert. Im Posteingang werden dann nur die Nachrichten angezeigt die als Empfänger den Namen des Users haben, im Ausgang dann die die als Absender den Namen des Users in der Tabelle stehen haben.
Funktioniert auch erstmal soweit.
Aber... ich habe auch die Möglichkeit eingebaut dass jeder Benutzer die Nachrichten aus seinem Postausgang sowie Posteingang löschen kann, um das Postfach sauber/aktuell halten zu können.

Das Problem ist dass für die Nachricht im Postausgang des einen Users und der selben Nachricht im Posteingang des anderen Users insgesamt nur ein Eintrag in der Tabelle vorhanden ist. Wir die Nachricht im Postausgang des einen gelöscht(und damit auch in der Tabelle) erscheint sie auch nicht mehr im Posteingang des anderen.

Eine Lösung wäre eine Tabelle für den Eingang und eine für den Ausgang zu erstellen. Dann habe ich aber jeden Datensatz 2-mal. 1-mal in der Eingang und 1-mal in der Ausgang Tabelle.
Das ist ja auch nicht sehr Datenbank freundlich.

Jetzt suche ich nach einer anderen Lösung. Jemand eine Idee?
Übrigens, ich nutze MySQL.

  1. Hallo

    Das Problem ist dass für die Nachricht im Postausgang des einen Users und der selben Nachricht im Posteingang des anderen Users insgesamt nur ein Eintrag in der Tabelle vorhanden ist. Wir die Nachricht im Postausgang des einen gelöscht(und damit auch in der Tabelle) erscheint sie auch nicht mehr im Posteingang des anderen.

    Verwende ein Flag, über dessen Wert Du feststellen kannst, ob

    - die Nachricht bei beiden angezeigt werden soll
      - nur beim Absender
      - nur beim Empfänger
      - gar nicht mehr (d.h. löschbar) ist.

    Jetzt suche ich nach einer anderen Lösung. Jemand eine Idee?

    Freundliche Grüße

    Vinzenz

    1. Verwende ein Flag, über dessen Wert Du feststellen kannst

      Flag? Sagt mir nicht viel.

      Ich habe mich mal im Netz grob über Flags informiert. Meinst du sowas wie flag = 0 // Wird bei beiden angezeigt
                flag = 1 // Wird nur beim Absender angezeigt
                flag = 2 // Wird nur beim Emfpänger angezeigt
                flag = 3 // gar nicht mehr(löschbar).

      und flag ist dann eine Spalte in der Tabelle in der der entsprechende Wert gespeichert wird.

      1. Hi koerschgen2001,

        Verwende ein Flag, über dessen Wert Du feststellen kannst

        Flag? Sagt mir nicht viel.

        Aber du kannst dir denken, was es ist, wenn du den Rest vom Text liest.

        Ich habe mich mal im Netz grob über Flags informiert. Meinst du sowas wie flag = 0 // Wird bei beiden angezeigt
                  flag = 1 // Wird nur beim Absender angezeigt
                  flag = 2 // Wird nur beim Emfpänger angezeigt
                  flag = 3 // gar nicht mehr(löschbar).

        und flag ist dann eine Spalte in der Tabelle in der der entsprechende Wert gespeichert wird.

        Ja, genau. Wobei ich 3 und 0 tauschen würde, weil a) 1+2=3 und b) nix=0

        Viele Grüße aus Freiburg,
        Marian