amirpz
دوشنبه 04 دی 1391, 13:26 عصر
چه طور میشه تغییرات رکوردهای یک جدول رو نگهداری کرد طوریکه کاربر بتونه تغییرات یک موجودیت خاص رو بر اساس زمان های مختلف ببینه؟
من چند تا راه حل مختلف پیدا کردم :
1- هر بار که اطلاعات هریک از فیلدهای یک رکورد تغییر می کنه اون رو به عنوان یک رکورد جدید در همون جدول ذخیره می کنیم. باید یک فیلد جداگانه وجود داشته باشه که بوسیله اون بتونیم این رکوردها رو به هم وصل کنیم. این فیلد باید از جنس کلید اصلی این جدول باشه و همین طور یک فیلد تاریخ و زمان تغییر رو نشون بده
2- هر بار که اطلاعات هریک از فیلدهای یک رکورد تغییر می کنه اون رو به عنوان یک رکورد جدید در همون جدول ذخیره می کنیم با این تفاوت که این دفعه فقط اطلاعات فیلد تغییر کرده ذخیره بشه و باقی فیلدهای دست نخورده یک مقدار نول ، خالی یا یک مقدار پیش فرض داشته باشند. طبیعتاً مثل راه حل اول به دو فیلد یکی برای اتصال این رکوردها به همدیگه و دیگری برای زمان و تاریخ تغییر نیاز داریم.
3- باید یک جدول جداگانه داشته باشیم که در این جدول مشخص شده کدام فیلد از کدام رکورد جدول اول در چه زمانی با چه مقداری جایگزین شده (شخصاً فکر می کنم از نظر دردسر پیاده سازی به صرفه نباشه)
4- استفاده از فایل گزارش همراه پایگاه داده که تغییرات دیتابیس در آن ذخیره می شه. (نمی دونم چه جوری)
سئوال من اینه که :
آیا راه حل های دیگه ای هم هست ؟
کدومیکی به نظرتون بهترین راه حله و چرا؟
اگه خودتون تجربه انجام همچین کاری رو دارین بهم بگین از چه روشی استفاده کردین و مزایا و معایب و محدودیت هاش چی بود؟
من چند تا راه حل مختلف پیدا کردم :
1- هر بار که اطلاعات هریک از فیلدهای یک رکورد تغییر می کنه اون رو به عنوان یک رکورد جدید در همون جدول ذخیره می کنیم. باید یک فیلد جداگانه وجود داشته باشه که بوسیله اون بتونیم این رکوردها رو به هم وصل کنیم. این فیلد باید از جنس کلید اصلی این جدول باشه و همین طور یک فیلد تاریخ و زمان تغییر رو نشون بده
2- هر بار که اطلاعات هریک از فیلدهای یک رکورد تغییر می کنه اون رو به عنوان یک رکورد جدید در همون جدول ذخیره می کنیم با این تفاوت که این دفعه فقط اطلاعات فیلد تغییر کرده ذخیره بشه و باقی فیلدهای دست نخورده یک مقدار نول ، خالی یا یک مقدار پیش فرض داشته باشند. طبیعتاً مثل راه حل اول به دو فیلد یکی برای اتصال این رکوردها به همدیگه و دیگری برای زمان و تاریخ تغییر نیاز داریم.
3- باید یک جدول جداگانه داشته باشیم که در این جدول مشخص شده کدام فیلد از کدام رکورد جدول اول در چه زمانی با چه مقداری جایگزین شده (شخصاً فکر می کنم از نظر دردسر پیاده سازی به صرفه نباشه)
4- استفاده از فایل گزارش همراه پایگاه داده که تغییرات دیتابیس در آن ذخیره می شه. (نمی دونم چه جوری)
سئوال من اینه که :
آیا راه حل های دیگه ای هم هست ؟
کدومیکی به نظرتون بهترین راه حله و چرا؟
اگه خودتون تجربه انجام همچین کاری رو دارین بهم بگین از چه روشی استفاده کردین و مزایا و معایب و محدودیت هاش چی بود؟