• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بهترین ایده برای عملیات لاگ جداول
#1
با سلام خدمت دوستان
میخواستم یه راهنمایی ازتون بگیرم

در یک دیتابیس برای لاگ کردن عملیات کاربران از جمله insert/update/delete کدوم طرح رو پیشنهاد میدید .

1- اینکه در داخل هر جدول 4 فیلد بنام های create_by, modify_by,create_date,modify_date ایجاد کنیم و هز زمان کاربر عملیات انجام داد هر کدوم از این فیلدها رو تغییر بدیم

2- اینکه تمام عملیات ها رو در یک فایل text خارج از دیتابیس ذخیره کنیم

3- اینکه یک جدول بنام log با فیلدهای table_name,row_id,user_id,date,operation_type  بسازیم و هر زمان هر تغییری در جداول مربوطه انجام شد در جدول لاگ یک رکورد ایجاد کنیم .

کدوم سناریو منطقی تر بنظر میرسه .
  پاسخ
تشکر شده توسط :
#2
سلام و وقت بخیر
خوبین؟

من از روش سوم واسه لاگ عملیات مدیران استفاده کردم. در مورد یک ، ممکنه دوکاربر همزمان کاری رو انجام بدن و فقط نفر آخر ثبت میشه. ولی اگر روش سوم رو انجام بدیم ، کلیه لاگ ها ثبت میشه.
یا حتی توی پنل یه صفحه جهت نمایش و مدیریت این لاگ ها داشته باشیم(یا نمایش لاگهای یک کاربر خاص) و در صورت نیاز بصورت فصلی هم موارد اضافه رو حذف کنیم.

از نظر منطقی منتظر نظر سایر دوستان هستیم
  پاسخ
تشکر شده توسط : Reza ImanAzadi mary20
#3
روش سوم بهتره میتونید کلا از یک دیتابیس دیگه هم استفاده کنید تا حجم دیتابیستون برای بک آپ کم بشه .
یا حتی میتونید از nosql ها برای نگه داری لاگ استفاده کنید مثل الاستیک
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys ImanAzadi mary20
#4
نظر خودمم روش سوم هست چون تاریخچه کامل تغییرات رو خواهیم داشت
تنها اشکال این روش زیاد شدن حجم دیتابیس ، فشار بر بانک اطلاعاتی و پردازش بیشتر سمت سرور هست
برای جلوگیری از زیاد شدن حجم دیتابیس میتونیم طبق گفته دوستمون آقا Reza میتونیم از یک دیتابیس دیگه واسه لاگ تغییرات استفاده کنیم
  پاسخ
تشکر شده توسط : ayoubsys
#5
(۱۳۹۸ آبان ۰۱, ۰۹:۲۱ ق.ظ)ImanAzadi نوشته: نظر خودمم روش سوم هست چون تاریخچه کامل تغییرات رو خواهیم داشت
تنها اشکال این روش زیاد شدن حجم دیتابیس ، فشار بر بانک اطلاعاتی و پردازش بیشتر سمت سرور هست
برای جلوگیری از زیاد شدن حجم دیتابیس میتونیم طبق گفته دوستمون آقا Reza  میتونیم از یک دیتابیس دیگه واسه لاگ تغییرات استفاده کنیم

با سلام
خب اینکار برای اینکه مدیر ببینه کاربران چه کاری انجام داده اند!
بعد از اینکه مدیر دید کاربری چیکار کرده می تونه بعدش لاگ رو حذف کنه که به دیتابیس هم فشاری وارد نشه
البته اینکار خیلی حجم دیتابیس رو زیاد نمی کنه چون داده ها حجم زیادی ندارن!
مثلا شناسه لاگ یک عدده که در رکوردهای میلیونی هم حجم پایگاه داده رو زیاد نمی کنه
یا شناسه ی عددی کاربر
یا تاریخ ها
چند هزار تا رکوردش هم نمیشه صد کیلوبایت!
من هم از روی سوم استفاده می کنم و هر وقت دیدم کاربری چیکار کرده بررسی می کنم و لاگش رو پاک می کنم!
  پاسخ
تشکر شده توسط : ImanAzadi
#6
audit log
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : ayoubsys Reza


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان