Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

neue Beiträge hervorheben

Mitglied: Closed
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

Content-Key: 101371

Url: https://administrator.de/contentid/101371

Ausgedruckt am: 30.07.2021 um 09:07 Uhr

Mitglied: ITLocke
ITLocke 09.11.2008 um 16:38:01 Uhr
Goto Top
Hallo Closed,

warum meinst du, kann es zu Überschneidungen kommen?

Wenn du die Tabelle mit den Attributen UserID, Tabelle und DatensatzID anlegst
und alle drei als Primärschlüssel setzt, sollte es doch gehen.
Mitglied: Closed
Closed 09.11.2008 um 19:10:10 Uhr
Goto Top
Naja ganz einfach. Ich habe beispielsweise eine Tabelle Aufgaben und eine Tabelle Meeting. Bei haben einen Primärschlüssel. Diese beginnen beide bei 0 und haben somit eindeutig Überschneidungen. Es ginge nur, wenn ich alles Tabellen, die ich verwalten will als Feld anlege und nur in das entsprechende Feld den Primärschlüssel der Tabelle eintrage.

Beispiel:
tblNeuigkeiten (id, userID, aufgabenID, meetingID)
erhalte ich nun einen neuen DS in der Tabelle meeting, so müsste ich für jeden User einen DS anlegen wobei die Felder id, userID und meetingID ausgefüllt werden. aufgabenID bleibt leer. Wenn nun der User auf den neuen Eintrag klickt, wird sein DS aus der Tabelle gelöscht und ich weiß, dass er den DS schon gelesen hat.

Wie schon gesagt: Finde die Lösung etwas kompliziert und weiß nicht, ob es eventuell einfacher ginge.
Mitglied: ITLocke
ITLocke 10.11.2008 um 09:04:53 Uhr
Goto Top
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.
Mitglied: masterG
masterG 10.11.2008 um 18:45:40 Uhr
Goto Top
Vorschlag 1 scheint mir am Sinnvollsten. Aber da darf der User die Cookies nicht löschen. Da musst du noch dazu eine Datenbank Lösung finden.

mfg
Heiß diskutierte Beiträge
question
Windows 365SarekHLVor 1 TagFrageWindows 1112 Kommentare

Hallo zusammen, nun ist es also soweit - Microsoft stellt mit "Windows 365" die Weichen in Richtung Windows as a Service: Wenn Microsoft da schreibt ...

question
Geplanter Server für Home LABraxxis990Vor 1 TagFrageServer-Hardware15 Kommentare

Guten Tag , Ich möchte gern meine aktuelle Hardware Tauschen. Im Einsatz ist ein kleiner Lenovo M93p ( Glaube ). Dort läuft ESXI mit 3 ...

question
Massive Probleme mit Windows Suche, Taskbar, Windows Standard Apps auf jedem Windows 10-PC im Firmennetzwerkrznr666Vor 21 StundenFrageWindows 1027 Kommentare

Hallo liebe Community, die PCs in unserem Unternehmen weisen folgende Probleme auf. Die Fehler treten nach einiger Zeit auf JEDEM Windows 10-PC auf, der genaue ...

question
Absicherung Exchange ServerLKleemannVor 21 StundenFrageExchange Server6 Kommentare

Hallo zusammen, wir sind bei uns in der Firma nun endlich vom Exchange POP3 Connector weggekommen und empfangen nun unsere E-Mail direkt über MX-Einträge. Nun ...

question
Anfragen an internen- und externen DNS Server gelöst BPeterVor 1 TagFrageWindows Server17 Kommentare

Hallo, im Homeoffice soll eine DNS Anfrage für Softphone über einen externen DNS Server laufen und nicht über den internen DNS Server. Dies soll aber ...

question
CMS für Lebenslauf einer Maschine gelöst rrobbyyVor 1 TagFrageCMS10 Kommentare

Hallo zusammen, im Zuge einer Masterarbeit loten wir gerade ein paar Möglichkeiten aus, wie man die (alle) technischen Daten einer Anlage (Kran-Anlagen) strukturiert und nachvollziehbar ...

question
Domainbenutzer Passwort lokal ändern?gecekusuVor 1 TagFrageWindows Userverwaltung9 Kommentare

Hallo zusammen, gibt es die Möglichkeit das Benutzerpasswort von lokalen Benutzer am PC der in einer (nicht verbundenen) Domain ist zu ändern? Sprich, Benutzer ist ...

question
Robocopy - FEHLER 0 (0x00000000)emeriksVor 23 StundenFrageBatch & Shell10 Kommentare

Hi, habe ich hier einen täglichen Copy Job, wo Robocopy plötzlich "Fehler 0" meldet, dass es erfolgreich sei, aber nichts kopiert. Festplatte des NAS ist ...