PDA

View Full Version : نگه داری تغییرات کاربر در بانک



mom alone
پنج شنبه 29 اسفند 1387, 08:09 صبح
با سلام من می خاستم تغییراتی که کاربران بر روی داده ها می دن رو نگه داری کنم با پیشنهاد یه نفر این کارو کردم
که برای هر رکورد یک ستون فلگ گذاشتم اما با مشکل پریماری کی بر خوردم
چون اگه کاربر 2 بار داده رو تغییر بده دو رکورد یک سان به وجود می آیند با فلگ یکسان
من می خوام کلیدم یه ستون به نام kodmember باشه اما و قتی تغییرات ایجاد می شه یه ردیف دیگه ایجاد می کنم با همان کد و فلک یک (به خاطر همین کلید رو دو ستون kodmember و flag گذاشتم اما در تغییرات بعدی باز به مشکل بر می خورم
مثال نام کد فلگ
علی 1 0 ثبت رکورد جدید
محسن 2 0 ثبت رکورد جدید
علی 1 1 تغییر رکورد اول برای با اول
علی 1 1 تغییر رکورد اول برای بار دوم


تو رو خدا کمک کنید
می تونم کلید رو طوری تعریف کنم که ستون کد باشه و اگه flag صفر بود نذاره 2 بار تکرار بشه و برای فلگ غیر صفر خطای تکراری نده؟

AminSobati
پنج شنبه 29 اسفند 1387, 21:44 عصر
سلام دوست عزیزم،
ظاهرا شما فقط عمل کاربر رو به صورت کلی ثبت میکنید و اینکه مقادیر چه تغییری کردن مد نظر نیست. به هر حال...
این حق مسلمه یک کاربره که بتونه رکورد رو چند دفعه ویرایش کنه. PK شما میتونه یک فیلد Identity باشه. مشکل کجاست؟

mom alone
پنج شنبه 29 اسفند 1387, 23:03 عصر
نه من در موقع تغییر رکورد کل رکورد رو دوباره ثبت می کنم با یک نشانه جدید

حالا بگم از مشکل
خوب بابا اینبار چه جوری کنترل کنم اطلاعات تکراری وارد جدول نشه (مثلا یه نفر در یک روز فقط یک بار ساعت ورود بزنه) البته این فقط یه مثال بود (در عمل یه چیز دیگه)
یه راه حل به نظرم رسید من برای هر جدول یه جدول کمکی بذارم و تغیرات رو در جدول کمکی ذخیره کنم (و بین دو جدول رابطه ایجاد کنم)
منتظرم سوباتی جان

mom alone
شنبه 01 فروردین 1388, 17:50 عصر
منتظرم سوباتی جان

AminSobati
یک شنبه 02 فروردین 1388, 18:21 عصر
طبیعتا History در جداول جداگانه باید ثبت بشن. هر جدولی که ازش History نیاز دارید، باید براش جدول دیگه ای ساخته بشه

en.kamali.ir
یک شنبه 02 فروردین 1388, 23:56 عصر
سلام دوست عزیر .
شما میتونی 2 تا فلگ در نظر بگیری اینطوری فکر کنم مشکلت به صورت مقطعی رفع بشه حد اقل تا زمانی که یک راه حل بهتر پیدا کنی .
علی 1 00 ثبت رکورد جدید
محسن 2 00 ثبت رکورد جدید
علی 1 1 1تغییر رکورد اول برای با اول
علی 1 1 2تغییر رکورد اول برای بار دوم
با این شرایط میتونی تشخیص بدی که به ترتیب اولا رکورد چند بار تغییر پیدا کرده ثانیا اصلا تغییر کرده یا نه
امید وارم منظورت رو فهمیده باشم

mom alone
دوشنبه 03 فروردین 1388, 02:44 صبح
اگه تعداد تغیرات بالا باشن دیگه روش شما کارایی نداره درست میگم؟
من از این روش استفاده کردم که برای هر جدول یک جدول دگه دارم که درست مثل همون است
و وقتی رکوردی تغیر میکنه اول رکورد رو می فرستم به دول کمکی و بعد تغییرات رو در جدول اصلی اعمال می کنم و البته در این حین فلگ رو در جدول اصلی تغییر میدم
برای اینکه بفهمیم آیا رکورد بیش از یک بار تغییر کرده نگاه میکنیم به فلگ در جدول کمکی اکر غیر از مقدار پیش فرض باشد یعنی رکورد بیش از یکبار تغییر کرده است
فکر می کنم این راح حل خیلی خوبی باشه