neue Beiträge hervorheben
Hallo,
derzeit arbeite ich an einem kleinen PHP-Webportal. Ich möchte nun als zusätzliche Funktionalität das Hervorheben von neuen Beiträgen anbieten. Habe mir auch schon ein zwei Gedanken dazu gemacht.
Vorschlag 1(dieser fällt weg):
Realisierung mittels Cookies. Ich lese beim Login den Wert des letzten Logins aus, speicher ihn in einer Session Variablen und vergleiche diesen Wert immer mit dem Datum, an dem der Datensatz angelegt wurde. Problem hierbei ist aber: Wenn mann auf den Datensatz klickt, wird er weiterhin als "nicht gelesen" markiert, da der Zeitwert sich erst wieder ändert, wenn man sich neu einloggt.
Vorschlag 2:
Ich lege eine neue Tabelle an, in der ich bei Neuanlage eines Datensatzes alle Mitglieder anlege und die ID des Datensatzes speichere. BEim Aufruf der Überischtsseite muss geguck werden, ob der User für den DS in der Tabelle vorhanden ist. Wenn er vorhanden ist, so wird der DS als nicht gelesen markiert. Beim Klick wird ein delete auf den DS gemacht. Problem hierbei ist, dass ich natürlich mehr als eine Tabelle verwalten muss. Es kann also zu Überschneidungen beim primary Key kommen. Es ist nicht eindeutig zuordbar aus welcher Tabelle der Key stammt.
Ich bin um jede Hilfe dankbar.
Google bringt leider auch nichts brauchbares hervor.
Vielen Dank schon mal vorab
derzeit arbeite ich an einem kleinen PHP-Webportal. Ich möchte nun als zusätzliche Funktionalität das Hervorheben von neuen Beiträgen anbieten. Habe mir auch schon ein zwei Gedanken dazu gemacht.
Vorschlag 1(dieser fällt weg):
Realisierung mittels Cookies. Ich lese beim Login den Wert des letzten Logins aus, speicher ihn in einer Session Variablen und vergleiche diesen Wert immer mit dem Datum, an dem der Datensatz angelegt wurde. Problem hierbei ist aber: Wenn mann auf den Datensatz klickt, wird er weiterhin als "nicht gelesen" markiert, da der Zeitwert sich erst wieder ändert, wenn man sich neu einloggt.
Vorschlag 2:
Ich lege eine neue Tabelle an, in der ich bei Neuanlage eines Datensatzes alle Mitglieder anlege und die ID des Datensatzes speichere. BEim Aufruf der Überischtsseite muss geguck werden, ob der User für den DS in der Tabelle vorhanden ist. Wenn er vorhanden ist, so wird der DS als nicht gelesen markiert. Beim Klick wird ein delete auf den DS gemacht. Problem hierbei ist, dass ich natürlich mehr als eine Tabelle verwalten muss. Es kann also zu Überschneidungen beim primary Key kommen. Es ist nicht eindeutig zuordbar aus welcher Tabelle der Key stammt.
Ich bin um jede Hilfe dankbar.
Google bringt leider auch nichts brauchbares hervor.
Vielen Dank schon mal vorab
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 101371
Url: https://administrator.de/contentid/101371
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
4 Kommentare
Neuester Kommentar
So kompliziert ist sie nicht. Mir würde auch momentan keine bessere einfallen.
Nochmal zu meinem Vorschlag:
Obige Tabelle besteht nur aus Primärschlüsseln.Mit dem Attribut id hab ich persönlich schon schlechte Erfahrungen gemacht hinsichtlich Datenredundanz, vor Allem, wenn du es per Autoincrement mit Werten füllst.
Das Attribut Tabelle beinhaltet die Namen der entsprechenden Tabellen (also 'meeting' oder 'aufgaben' etc.)
Somit hast du die Möglichkeit, neue Einträge in beiden Tabellen (aufgaben, meeting) in einer minimalen Tabelle(Neuigkeiten) abzuhandeln.
Aussehen würde das wie folgt:
UserID Tabelle DatensatzID
001 'aufgaben' 003
001 'meeting' 301
002 'aufgaben' 403
...
Das Eintragen und Löschen der Datensätze sollte ja kein Problem darstellen.
PS: UserID kannst du auch als Fremschlüssel aus deiner UserTabelle eintragen.
Nochmal zu meinem Vorschlag:
Obige Tabelle besteht nur aus Primärschlüsseln.Mit dem Attribut id hab ich persönlich schon schlechte Erfahrungen gemacht hinsichtlich Datenredundanz, vor Allem, wenn du es per Autoincrement mit Werten füllst.
Das Attribut Tabelle beinhaltet die Namen der entsprechenden Tabellen (also 'meeting' oder 'aufgaben' etc.)
Somit hast du die Möglichkeit, neue Einträge in beiden Tabellen (aufgaben, meeting) in einer minimalen Tabelle(Neuigkeiten) abzuhandeln.
Aussehen würde das wie folgt:
UserID Tabelle DatensatzID
001 'aufgaben' 003
001 'meeting' 301
002 'aufgaben' 403
...
Das Eintragen und Löschen der Datensätze sollte ja kein Problem darstellen.
PS: UserID kannst du auch als Fremschlüssel aus deiner UserTabelle eintragen.