Frage

Ich bin der Gestaltung ein Intranet-System für mittlere Unternehmen. Soll ich für alle Module eine einzelne Log-Tabelle halten oder machen es trennen?

Überwachungsprotokoll hält alle admin / Personal-Aktivitäten (Erstellen, Aktualisieren, Löschen von Objekten) und die Protokollstruktur für jede Art von Modul universell ist.

Und auch ist es eine gute Idee, wenn ich Bericht ziehen basierend auf Log-Einträge? Meine Log-Tabelle hält Objekttyp und Objekt-ID, damit ich Daten für jedes Objekt holen konnte und jederzeit auf Basis von Ereignisse, Objektname und Objekt-ID.

Was ist der beste Ansatz in solchen Fällen für die Berichterstattung?

War es hilfreich?

Lösung

Nun, wenn Sie gehen Ihre Protokolle zu überprüfen, was würden Sie lieber tun, schauen Sie in einem Ort, wo man alles sehen kann, oder haben mehrere verschiedene Orte zu überprüfen, von denen jede nur zeigt ein Stück des Systems isoliert

Beachten Sie, dass mit einer einzigen Tabelle, ist es trivial Einträge, um herauszufiltern, die irrelevant sind oder die der Benutzer keine Berechtigung anzuzeigen. mehrere einzelne Protokolle in einer einzigen, umfassenden Überblick zu verbinden, ist ein bisschen schwieriger zu tun, und es hat den zusätzlichen Nachteil, unter den meisten Designs, die Sie auffordert, den Code zu überdenken, die tut das jedes Mal eine neue Log-Tabelle hinzugefügt wird, kombiniert werden.

Ich sage auf jeden Fall ein einzelnes Protokoll vorzuziehen. Die einzige Situation, die ich denken kann, wo mehrere getrennte Protokolle angemessen wäre, wäre, wenn Sicherheitsbedenken stark genug waren, um die Protokolleinträge erfordern mit unterschiedlichen Sichtbarkeit physisch getrennt sein müssen - und in einem solchen Fall würden Sie wahrscheinlich an getrennten suchen werden log-Server, nicht nur separate Tabellen.

Andere Tipps

Siehe log4php . log4j viel von den Protokollierungs Probleme gelöst durch Protokollhierarchie und Ebenen eingeführt wird. Ich weiß nicht, wie gut log4php ist, aber es soll ein Starter sein.

Ich würde sagen, einen Tisch.

Sie möchten Benutzeraktivitäten über alle Module finden, zum Beispiel (wenn ich das richtig verstanden). Was zu einem Tisch eignet sich.

Berichterstattung Ihrer Log-Tabelle aus wäre in Ordnung sein. Sie Offload in ein separaten Berichten Datenbankkonflikte und Last auf der Logging-Tabelle zu reduzieren.

Schließlich möchte ich Objektnamen speichern und explizit (Datenbankobjekte) eingeben. Wenn Sie DROP und CREATE dann wird die ID ändern. Oder eine Tabelle kann eine Ansicht zum Beispiel werden so beide es Art ist und objectid wird sich ändern.

Wir verwenden einzelne Tabelle und es erwies sich als die beste Lösung, vor allem in der Leistung zu sein. Und vor allem mit großen Datenmengen. Wenn Sie in off-the-shelf-Lösung interessiert sind -. Versuchen diese

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top