Question

Je suis la conception d'un système intranet pour les moyennes entreprises. Dois-je conserver une table de journal unique pour tous les modules ou faire séparer?

journal d'audit conserve tous les admin / activités du personnel (créer, mettre à jour, supprimer des objets) et la structure du journal est universel pour tout type de module.

Et est-ce aussi une bonne idée si je tire rapport basé sur les enregistrements du journal? Ma table de journal conserve le type d'objet et l'ID d'objet pour que je puisse récupérer les données pour tout objet et à tout moment en fonction de l'événement, le nom de l'objet et l'ID d'objet.

Quelle est la meilleure approche pour rendre compte dans de tels cas?

Était-ce utile?

La solution

Eh bien, quand vous allez revoir vos journaux, qui feriez-vous plutôt regarder dans un endroit où vous pouvez voir tout ou doivent vérifier plusieurs endroits différents, chacun montre une seule pièce du système en vase clos?

Gardez à l'esprit que, avec une seule table, il est trivial de filtrer les entrées qui ne sont pas pertinents ou que l'utilisateur n'a pas l'autorisation de voir. La combinaison de plusieurs journaux individuels dans une vue d'ensemble unique, est un peu plus compliqué à faire, plus il a l'inconvénient supplémentaire, dans la plupart des modèles, qui vous oblige à revisiter le code qui fait la combinaison à chaque fois une nouvelle table de journal est ajouté.

Je dis certainement un journal unique est préférable. La seule situation dans laquelle je peux penser à où plusieurs journaux distincts seraient appropriés serait si les problèmes de sécurité étaient assez forts pour exiger que les entrées du journal avec une visibilité différente doivent être physiquement séparés - et, dans ce cas, vous auriez probablement regarderez séparé log des serveurs, et pas seulement des tables séparées.

Autres conseils

Voir log4php . log4j résolu la plupart des problèmes d'exploitation forestière en introduisant la hiérarchie des journaux et des niveaux. Je ne sais pas à quel point log4php est, mais il devrait être un démarreur.

Je dirais une table.

Vous pouvez trouver l'activité des utilisateurs dans tous les modules, par exemple (si je comprends bien). Qui se prête à une table.

rapports sur votre table de journal serait OK. Vous débarquez dans une base de données de rapports séparés pour réduire les conflits et la charge sur la table d'enregistrement.

Enfin, je stocker le nom de l'objet et tapez explicitement (objets de base de données). Si vous laissez tomber et créez ensuite l'ID changera. Ou une table peut devenir une vue à la fois par exemple pour son type et objectid changera.

Nous utilisons une seule table et il est avéré être la meilleure solution, en particulier dans la performance. Et surtout avec de grands ensembles de données. Si vous êtes intéressé par une solution impromptu -. Essayer cette

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top