Modülleri için tek bir merkezi veya Ayrılmış günlük tablo?

4 Cevap php

Ben orta ölçekli işletmeler için intranet sistemi tasarlama. I tüm modüller için tek günlük bir tablo tutmak ya da ayrı yapmak gerekir? Denetim günlüğü tüm yönetici / personel faaliyetlerini tutar (nesneleri silmek, güncelleme oluşturmak) ve günlük yapı modülünün her türlü evrenseldir. I log kayıtlarına dayalı rapor çekerseniz ve aynı zamanda iyi bir fikirdir? Benim günlük tablo bu yüzden herhangi bir nesne ve olay, nesne adı ve nesne kimliği dayalı herhangi bir anda veri almak olabilir nesne türü ve nesne id tutar. Nedir bu gibi durumlarda raporlama için en iyi yaklaşım nedir?

Herkes bu ile yaşadı?

Teşekkürler.

4 Cevap

Eğer günlükleri, yerine yapacağını yorumlayan gittiğinizde Eh, her şeyi görmek ya da sadece izolasyon sisteminin bir parçasını gösterir, her biri farklı yerlerde, kontrol etmek zorunda tek bir yerde bakmak?

Tek bir tablo ile, bu kullanıcı görüntülemek için yetkisi olmayan alakasız veya hangi girdiler filtrelemek için önemsiz olduğunu, unutmayın. Bir tek, kapsamlı bir görünüm içine birkaç bireysel günlükleri birleştiren yapmak biraz daha zordur, artı yeni bir günlük tabloya eklenen her zaman birleştirerek yok kodunu tekrar gerektiren, en tasarımları altında, ek dezavantajı vardır.

Ben kesinlikle bir tek günlük tercih olduğunu söylüyorlar. Ve, böyle bir durumda, muhtemelen ayrı bakıyor olurdum - Birden ayrılmış günlükleri uygun olacağı aklınıza sadece durumu güvenlik endişeleri fiziksel olarak ayrılmış olmalıdır farklı görüş ile bu günlük girdileri gerektirecek kadar güçlü olsaydı olurdu sunucuları, sadece ayrı tablolar oturum açın.

Bkz log4php. log4j günlük hiyerarşi ve düzeylerini getirerek günlük sorunları çok çözüldü. Ben iyi log4php olduğunu bilmiyorum, ama bu bir başlangıç ​​olmalıdır.

Ben bir tablo söyleyebilirim.

Sen (eğer doğru anlamak), örneğin, tüm modüller arasında kullanıcı etkinliği bulmak isteyebilirsiniz. Hangisi tabloya oldukça rahat.

Log masadan Raporlama Tamam olurdu. Sen çekişme azaltmak ve günlük masada yüklemek için ayrı bir rapor veritabanına boşaltması.

Finally, I would store object name and type explicitly (database objects). If you DROP and CREATE then the ID will change. Or a table may become a view for example so both it's type and objectid will change.

Biz tek bir tablo kullanırsanız ve özellikle performansı en iyi çözüm olduğunu kanıtladı. Ve özellikle büyük veri setleri ile. Eğer off-the-raf çözüm ilgileniyorsanız - try this.