PDA

View Full Version : log نويسي در شرايطي كه مقدار فيلد كليد جدول تغيير كند.



kheyri
سه شنبه 10 اردیبهشت 1387, 13:48 عصر
سلام دوستان
فرض كنيد كه براي يك جدول تريگري نوشته ايم كه تغييرات Insert و Delete و Update را Log ميكند و در جدول LOG همه فيلدها ذخيره ميشوند از جمله فيلد كليد جدول اصلي . حال اگر در جدول اصلي ، مقدار فيلد كليد جدول كه پل ارتباطي جدول اصلي و جدول LOG ميباشد و مربوط به ركوردي كه قبلاً تغييرات آن در جدول LOG ذخيره شده تغيير كند ( مثلا كسي عمداً اينكار را بكند) ارتباط جدول اصلي و جدول لاگ از بين ميرود. چه راه حلي را ميتوان بكار بست كه اين ارتباط يا قطع نشود و يا بتوان كليد اصلي تغيير يافته را پيدا كرد؟

kheyri
شنبه 14 اردیبهشت 1387, 15:23 عصر
يعني اين سوال اينقدر سخت بود؟

رضا عربلو
شنبه 14 اردیبهشت 1387, 17:26 عصر
دوست عزیز این تغییرات را می توان یک Log محسوب کرد. در واقع شما به log هایتان بایستی بصورت یک جدول ثبت تغییرات نگاه کنید که به ترتیب زمان sort شده است و در آن مقدار قدیم و مقدار جدید ثبت می شوند.
یک همچین جدولی را برای لاگ فایل تان در نضر بگیرید:
ردیف
تاریخ و ساعت از نوع timestamp
عمل انجام شده
مقدار قدیم
مقدار جدید

در این حالت شما با داشتن آخرین مقدار یک رکورد (مقدار) می توانید به عقب پیمایش کنید و تاریخچه رکوردتان را بدست بیاورید.