نمایش نتایج 1 تا 6 از 6

نام تاپیک: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

  1. #1
    کاربر دائمی آواتار emad4000
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    کرمان
    سن
    37
    پست
    257

    Question مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    با سلام به همه دوستان
    من توی یکی از برنامه هام، از روش حذف منطقی (Logical Delete or Soft Delete) استفاده می کنم
    بالطبع برای بروزرسانی داده ها هم از بروزرسانی منطقی استفاده می کنم
    ولی مشکلی که برام پیش میاد توی Cascade کردن اطلاعات تغییر یافته است.

    مثلاً در جدول Person شخصی دارم با شماره 1
    شماره این شخص در جدول قراردادها به صورت کلید خارجی استفاده شده، یعنی مثلاً قراردادی برای این شخص (که شماره اش 1 هست) ثبت شده.

    حالا من اگر اطلاعات این شخص رو بخوام تغییر بدم، مثلاً فامیلش عوض بشه، اول میام فیلد isDeleted رکورد قبلی شخص رو True می کنم، بعد میام رکوردی در جدول Person می سازم که دقیقا یه کپی از رکورد قبلیش هست، فقط فامیلش فرق می کنه. از اونجایی که شماره شخص کلید اصلی جدول هست، شماره اش هم عوض میشه و مثلاً میشه 2
    اینجاست که مشکل بوجود میاد. حالا دیگه اون قرارداد که برای فرد شماره 1 ثبت شده بود دیگه معتبر نیست
    در واقع باید شماره شخص در این جدول هم Cascade بشه و بشه 2

    برای این کار ایده هایی مثل جدا کردن کلید اصلی در جدول دوم یا نوشتن روال خودکار Cascade دارم. ولی اول می خوام بدونم آیا روش استانداردی برای این مشکل وجود داره یا نه؟

  2. #2
    کاربر دائمی آواتار emad4000
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    کرمان
    سن
    37
    پست
    257

    نقل قول: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    کسی نمی تونه یه راهنمایی کنه؟؟؟؟!!!!؟؟

  3. #3
    کاربر دائمی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    240

    نقل قول: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    سلام

    از نظر من ، نیازی به این کار نیست ،‌ شما برای تغییر فقط ردیف مربوطه را ویرایش کن. در صورتی که اطلاعات شخص از سمت کاربر حذف شد ،‌ از حذف منطقی استفاده کن.
    با این روش مشکلی نخواهید داشت .
    اگر من منظور شما را بدرستی متوجه نشدم ،‌بیشتر توضیح بدین لطفا.

  4. #4
    کاربر دائمی آواتار emad4000
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    کرمان
    سن
    37
    پست
    257

    Question نقل قول: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    نقل قول نوشته شده توسط espootin مشاهده تاپیک
    از نظر من ، نیازی به این کار نیست ،‌ شما برای تغییر فقط ردیف مربوطه را ویرایش کن. در صورتی که اطلاعات شخص از سمت کاربر حذف شد ،‌ از حذف منطقی استفاده کن.
    با این روش مشکلی نخواهید داشت .
    اگر من منظور شما را بدرستی متوجه نشدم ،‌بیشتر توضیح بدین لطفا.
    خوب من اين كار رو انجام ميدم كه سابقه ويرايش داده ها رو حفظ كنم. يعني بعداً با رجوع به تاريخچه اون ركورد، ببينم كه قبلاً چه داده اي داشته
    بنابراين نياز دارم كه اينجوري عمل كنم

  5. #5

    نقل قول: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    نقل قول نوشته شده توسط emad4000 مشاهده تاپیک
    خوب من اين كار رو انجام ميدم كه سابقه ويرايش داده ها رو حفظ كنم. يعني بعداً با رجوع به تاريخچه اون ركورد، ببينم كه قبلاً چه داده اي داشته
    بنابراين نياز دارم كه اينجوري عمل كنم
    سلام.
    راهی که من برای پاسخ به سوال شما (البته اگه سوال شما رو درست متوجه شده باشم) انتخاب میکنم، اینه که یه کپی از رکورد شماره 1 تو جدول personدرست کنم. بعدش همون رکورد شماره 1 رو ویرایش کنم. به جای فیلد isdeleted هم یه فیلد PreviousID در نظر میگیرم که در حالت عادی نال هست. وقتی رکوردی دیلیت میشه -1 و وقتی ویرایش میشه، شماره رکورد ثبت شده جدید (که اطلاعات قبلی توش ثبته) اونجا قرار میگیره. با این روش دیگه نیازی به تغییر جدول قراردادها نخواهد بود.

  6. #6

    نقل قول: مشکل Cascade داده ها در روش حذف و بروزرسانی منطقی (Logical Delete or Soft Delete)

    بسم الله الرحمن الرحیم
    نقل قول نوشته شده توسط emad4000 مشاهده تاپیک
    با سلام به همه دوستان
    من توی یکی از برنامه هام، از روش حذف منطقی (Logical Delete or Soft Delete) استفاده می کنم
    بالطبع برای بروزرسانی داده ها هم از بروزرسانی منطقی استفاده می کنم
    ولی مشکلی که برام پیش میاد توی Cascade کردن اطلاعات تغییر یافته است.

    مثلاً در جدول Person شخصی دارم با شماره 1
    شماره این شخص در جدول قراردادها به صورت کلید خارجی استفاده شده، یعنی مثلاً قراردادی برای این شخص (که شماره اش 1 هست) ثبت شده.

    حالا من اگر اطلاعات این شخص رو بخوام تغییر بدم، مثلاً فامیلش عوض بشه، اول میام فیلد isDeleted رکورد قبلی شخص رو True می کنم، بعد میام رکوردی در جدول Person می سازم که دقیقا یه کپی از رکورد قبلیش هست، فقط فامیلش فرق می کنه. از اونجایی که شماره شخص کلید اصلی جدول هست، شماره اش هم عوض میشه و مثلاً میشه 2
    اینجاست که مشکل بوجود میاد. حالا دیگه اون قرارداد که برای فرد شماره 1 ثبت شده بود دیگه معتبر نیست
    در واقع باید شماره شخص در این جدول هم Cascade بشه و بشه 2

    برای این کار ایده هایی مثل جدا کردن کلید اصلی در جدول دوم یا نوشتن روال خودکار Cascade دارم. ولی اول می خوام بدونم آیا روش استانداردی برای این مشکل وجود داره یا نه؟
    با سلام
    لطفا برای موردی که فرمودید راجع به CDC که مخفف Change Data Capture هست تحقیق بفرمائید.
    موفق باشید.

تاپیک های مشابه

  1. روش حذف یک داده خاص از دیتابیس
    نوشته شده توسط salehvasaleh در بخش C#‎‎
    پاسخ: 4
    آخرین پست: سه شنبه 12 مرداد 1389, 20:24 عصر
  2. روش حذف نوار وظیفه در #C
    نوشته شده توسط kamiarir در بخش C#‎‎
    پاسخ: 5
    آخرین پست: یک شنبه 13 مرداد 1387, 17:15 عصر
  3. مشکل با داده های فارسی در دیتابیس
    نوشته شده توسط raha_hakhamanesh در بخش SQL Server
    پاسخ: 2
    آخرین پست: چهارشنبه 31 مرداد 1386, 13:59 عصر
  4. مشکل نمایش داده های فارسی در Java
    نوشته شده توسط abdollahi در بخش برنامه‌نویسی جاوا
    پاسخ: 2
    آخرین پست: جمعه 03 تیر 1384, 06:55 صبح
  5. روش حذف تاپیکهای راهنمای CLX از سیستم Help دلفی
    نوشته شده توسط مهدی کرامتی در بخش مقالات مرتبط با Delphi/Win32
    پاسخ: 0
    آخرین پست: شنبه 02 آبان 1383, 22:02 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •