من یک جایی احتیاج دارم که اطلاعات مربوط به یک یا چند جدول را نهایی کنم به این معنی که مثلا بعد از یک تاریخ (مثلا یک سال مالی) کسی حق ندارد هیچ گونه عملیاتی بر روی این جدول انجام دهد می خواستم ببینم دوستان چه روشی را پیشنهاد می کنند؟
من یک جایی احتیاج دارم که اطلاعات مربوط به یک یا چند جدول را نهایی کنم به این معنی که مثلا بعد از یک تاریخ (مثلا یک سال مالی) کسی حق ندارد هیچ گونه عملیاتی بر روی این جدول انجام دهد می خواستم ببینم دوستان چه روشی را پیشنهاد می کنند؟
اولین روشی که به ذهم میرسه استفاده از تریگر هست. یعنی یک شرط در ابتدا گذاشته بشه و در صورتی که شرط نقض شود عمل Rollback انجام شود.
ولی اگه تعداد جداوی زیاد است بهتره کنترل ثبت و بروزرسانی و حذف را در یک SP خود هندل کنید و مانند بالا عمل کنید.
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master
روشهای زیادی میشه استفاده کرد، ولی بستگی به شرایط شما داره. مثلا در سطح Application کنترل کنید یا در SP یا...
از اونجائیکه سوالتون خیلی کلی هستش من دقیق تر از این چیزی نمیتونم بگم، مثلا:
در Application زمانی که کاربر اطلاعات سال قبلی رو داره مرور میکنه، کلید "ویرایش" غیر فعال باشه.
یا در دیتابیس، وقتی SP مربوط به ویرایش رو فراخوانی میکنید، اگر رکورد مورد نظر با تاریخ فعلی (که فرضا از GetDate بدست میارید) مغایر بود، Update انجام نشه.
اگر برنامه به صورت Client/server است و کسی به سرور دسترسی ندارد همین کار کفایت می کند.در غیر این صورت جدولی برای سالهای مالی در نظر بگیرید.در مورد تاریخ ممکن هست کاربر با عوض کردن تاریخ سیستم بتواند این کار را انجام دهند
To follow the path:
Look to the master
Follow the master
Walk with the master
See through the master
Become the master