Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

neue Beiträge hervorheben

Frage Entwicklung PHP

Mitglied: Closed

Closed (Level 1) - Jetzt verbinden

09.11.2008, aktualisiert 10.11.2008, 3972 Aufrufe, 4 Kommentare

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
Mitglied: ITLocke
09.11.2008 um 16:38 Uhr
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.
Bitte warten ..
Mitglied: Closed
09.11.2008 um 19:10 Uhr
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.
Bitte warten ..
Mitglied: ITLocke
10.11.2008 um 09:04 Uhr
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.
Bitte warten ..
Mitglied: masterG
10.11.2008 um 18:45 Uhr
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.

Mit freundlichen Grüßen
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Server-Hardware
gelöst Neue Serverfestplatten (13)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Router & Routing
Neue Top Level Domain .box bringt manche Netze durcheinander (1)

Link von magicteddy zum Thema Router & Routing ...

Router & Routing
Neue Top Level Domain .box bringt manche Fritzbox-Netze durcheinander (3)

Link von mikrotik zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...