PDA

View Full Version : نگهداری اطلاعات کاربر ثبت کننده و ویرایش کننده



مهدی هادیان2
پنج شنبه 06 بهمن 1390, 09:05 صبح
بسم الله الرحمن الرحیم
با سلام
میشه کد کسی که رکوردی رو ذخیره کرده یا ویرایش کرده است را نگه داشت؟
در پروژه از ما خواستن اطلاعات ثبت کننده و ویرایش کننده رو نگه داریم
با اطمینان می توان گفت که می توان اطلاعات کسی رو که آخرین تغییرات را روی رکورد اعمال کرده نگه داشت ولی وقتی رکوردی ویرایش می شود اطلاعات قبلی نمی ماند پس چه اهمیتی پیدامی کند که من اطلاعات فرد ثبت کننده رو نگه دارم؟
با تشکر

linux
پنج شنبه 06 بهمن 1390, 09:58 صبح
بسم الله الرحمن الرحیم
با سلام
میشه کد کسی که رکوردی رو ذخیره کرده یا ویرایش کرده است را نگه داشت؟
در پروژه از ما خواستن اطلاعات ثبت کننده و ویرایش کننده رو نگه داریم
با اطمینان می توان گفت که می توان اطلاعات کسی رو که آخرین تغییرات را روی رکورد اعمال کرده نگه داشت ولی وقتی رکوردی ویرایش می شود اطلاعات قبلی نمی ماند پس چه اهمیتی پیدامی کند که من اطلاعات فرد ثبت کننده رو نگه دارم؟
با تشکر
یک جدول به log درست کنید، هر بار که اطلاعات در جدول اصلی تغییر می کند در این جدول تغییرات را ذخیره کنید، ساده ترین حالت
1:تاریخ و ساعت 2:کد کاربر 3: نوع تغییر ( افزودن ، ویرایش ، حذف)

مهدی هادیان2
پنج شنبه 06 بهمن 1390, 11:02 صبح
یک جدول به log درست کنید، هر بار که اطلاعات در جدول اصلی تغییر می کند در این جدول تغییرات را ذخیره کنید، ساده ترین حالت
1:تاریخ و ساعت 2:کد کاربر 3: نوع تغییر ( افزودن ، ویرایش ، حذف)
از راهنماییتون ممنون
حالتی رو در نظر بگیرید که ابتدا کاربری رکوردی رو اضافه سپس کاربر دیگر همون رکورد رو ویرایش می کنه
به نظرتون چه فایده ای داره که کد کاربر ثبت کننده ذخیره بشه در صورتی که تمام فیلدهای رکوردی که ثبت کرده است؛تغییر کرده است؟

یوسف زالی
پنج شنبه 06 بهمن 1390, 15:26 عصر
فایده این کار اینه که لاگ کار دنبال بشه.
فرض کنید کسی سفارشی زده و جنس رو خارج کرده. فردی میاد و اون سفارش رو پاک می کنه.
از کجا می فهمید زننده سفارش کی بوده تا اگر لازمه جریمه بشه؟
بستگی داره به دید شما و میزان نیاز شما به فایل لاگ.

مهدی هادیان2
پنج شنبه 06 بهمن 1390, 16:43 عصر
فایده این کار اینه که لاگ کار دنبال بشه.
فرض کنید کسی سفارشی زده و جنس رو خارج کرده. فردی میاد و اون سفارش رو پاک می کنه.
از کجا می فهمید زننده سفارش کی بوده تا اگر لازمه جریمه بشه؟
بستگی داره به دید شما و میزان نیاز شما به فایل لاگ.
حرفتون کاملا صحیح است با این تفاسیر به نظر شما برای پیاده سازی این مطلب جالب ترین حالت چیه؟

یوسف زالی
پنج شنبه 06 بهمن 1390, 18:31 عصر
دوست عزیزمون روش کار رو فرمودند.
به نظر من هم روش مناسبیه.
می تونید با تریگر یا اس پی اون رو پیاده کنید.
اطلاعات بیشتر در ابن دو مورد هم در همین تالار هست.

مهدی هادیان2
پنج شنبه 06 بهمن 1390, 19:44 عصر
یک جدول به log درست کنید، هر بار که اطلاعات در جدول اصلی تغییر می کند در این جدول تغییرات را ذخیره کنید، ساده ترین حالت
1:تاریخ و ساعت 2:کد کاربر 3: نوع تغییر ( افزودن ، ویرایش ، حذف)
آیا باید نام جدول رو هم ذخیره کنم؟
و چه جوری میشه فهمید که کدام حذف مربوط به کدوم ثبت بوده است؟
مثلا همون مثالی که You-see فرمودن فردی کالایی رو 30 تا سفارش داده کاربر دیگر تعداد رو به 90 تا تبدیل می کنه چه جوری میشه اثبات کرد که کاربر1؛۳۰تا سفارش داده بود
و مسائله ای از این دست
از تمام دوستان تشکر می کنم

یوسف زالی
پنج شنبه 06 بهمن 1390, 22:12 عصر
این کاملا بستگی به سطح لاگ کردنتون داره.
اگر براتون خیلی مهمه می تونید در هر بار اصلاح در حقیقت یک مقدار بیتی رو صفر کنید و مقدار جدید رو با بیت 1 وارد کنید.
در نمایش هم تمام صفر ها رو نشون ندید. موقع حذف همبه جای حذف واقعی بیت رو صفر کنید.
گزارشات هم که به سادگی گرفته می شن.
حواستون باشه که با این وضع ممکنه حجم داده هاتون چند برابر بشه.

in_chand_nafar
جمعه 07 بهمن 1390, 18:40 عصر
دوست عزيز اگر SQL شما 2008 نيازي به اختراع چرخ نمي باشد CDC اينكار را براي شما انجام مي دهد
اين قابليت تغييرات ركوردها و حتي اضافه و كم شدن فيلد به جدول را نگهداري مي كنه خيلي بهنيه و كار راه انداز است
به اين لينك يه سر بزن
http://barnamenevis.org/showthread.php?321182-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%28CDC-%28Change-Data-Capture-%D8%AF%D8%B1-Sql-Server-2008&highlight=cdc
http://barnamenevis.org/showthread.php?309773-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-CDC&highlight=cdc
به زودي يه سري فيلم فارسي درباره اين موضوع توي www.nikamooz.com خواهم گذاشت

Galawij
شنبه 08 بهمن 1390, 07:42 صبح
دوست عزيز اگر SQL شما 2008 نيازي به اختراع چرخ نمي باشد CDC اينكار را براي شما انجام مي دهداستفاده از CDC (http://barnamenevis.org/showthread.php?321182-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%28CDC-%28Change-Data-Capture-%D8%AF%D8%B1-Sql-Server-2008) نیاز به نگهداری کد کاربرانی که در برنامه تعریف شده اند، در جداول مربوطه دارد(البته برای تأمین نیاز سوال این تاپیک).

خيلي بهنيه و كار راه انداز استالبته بسته به میزان دستورات DML به سرعت رشد می کند.