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

نام تاپیک: ذخیره تاریخچه تغییرات ساختار درختی

  1. #1
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    Question ذخیره تاریخچه تغییرات ساختار درختی

    سلام وقت بخیر دوستان .
    من یه جدول دارم که به وسیله اون ساختار درختی رو پیاده سازی کردم.فیلدهای اون جدول به این صورته : کد - کد والد-عنوان
    که وقتی فرزندی از یه گره بوجود میاد کد والد دلالت بر کد پدرش داره. با این روش تا n سطح میتونم گره رو ایجاد و مدیریت کنم.
    یه جدول دیگه هم دارم که یه سری اطلاعات از هر گره یا تعدادی از گره ها رو نگه میدارم و با کد ساختار جدول درختی ارتباط یک به چند داره

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

    Drawing1.jpg

  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    یک جدول مشابه همین کنارش بگیرید به علاوه فیلد نوع نغییر مثلا بگه حذف بوده ادیت بوده یا ....

  3. #3
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    نقل قول نوشته شده توسط parvizwpf مشاهده تاپیک
    یک جدول مشابه همین کنارش بگیرید به علاوه فیلد نوع نغییر مثلا بگه حذف بوده ادیت بوده یا ....
    دوتا جدول دارم. یکی ساختار درختمه. یکی هم اون جدول کناری که گذاشتم.

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

  4. #4

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    شما میتونی یه فیلد مثلا HasEdited به ستونات اضافه کنی و یه جدول واسه مقادیر قبل از تغییرات بسازی. هر موقع تغییری برای یه رکورد انجام گرفت، فیلد hasEdited مربوط به اون رکورد رو برابر true کن و مقدار قبلی رو داخل جدول تغییرات درج کن، حالا هرموقع خواستی نمودار رو رسم کنی، واسه هر رکورد فیلد hasedited رو چک کن، اگه true بود بره توی جدول تغییرات مقدار اولیه رو بخونه و اون رو به جای مقدار جدید توی نمودار نشون بده
    من اینو بصورت کاملا ساده گفتم، شما میتونی بسته به موقعیت و نیازت همین راهکار رو تعمیم بدی

  5. #5
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    نقل قول نوشته شده توسط mr.sirwan مشاهده تاپیک
    شما میتونی یه فیلد مثلا HasEdited به ستونات اضافه کنی و یه جدول واسه مقادیر قبل از تغییرات بسازی. هر موقع تغییری برای یه رکورد انجام گرفت، فیلد hasEdited مربوط به اون رکورد رو برابر true کن و مقدار قبلی رو داخل جدول تغییرات درج کن، حالا هرموقع خواستی نمودار رو رسم کنی، واسه هر رکورد فیلد hasedited رو چک کن، اگه true بود بره توی جدول تغییرات مقدار اولیه رو بخونه و اون رو به جای مقدار جدید توی نمودار نشون بده
    من اینو بصورت کاملا ساده گفتم، شما میتونی بسته به موقعیت و نیازت همین راهکار رو تعمیم بدی
    خب برا حذف گره چه پیشنهادی دارید؟
    یا مثلا فیلد یا فیلدهای در طول زمان ده بار تغییر داشته باشه چی؟
    من باید بسته به تاریخ تغییر هر مورد بتونم نمایش بدم کل جدولو(یعنی امروز که تغییری رخ داد بتونم به کاربر نشون بدم که امروز قبل تغغیر ساختارمون اینشکلی بود)

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    سلام
    چیزی که به نظر من می رسه و البته تست نشده، شما در این مورد کلاً نباید رکوردی رو حذف یا ویرایش کنید. یعنی اولاً یه فیلد داشته باشید که نشان دهنده وضعیت رکورد باشه به این صورت که 0 برای رکورد فعال، 1 برای رکورد ویرایش شده و 2 برای رکورد حذف شده. حالا هر تغییر یا حذفی که اتفاق افتاد از یک طرف فیلد وضعیت در رکورد مورد نظر رو ویرایش یعنی اون فیلد وضعیت رو به 1 یا 2 تغییر بدید. از طرف دیگه اگر رکورد ویرایش بود یک رکورد جدید با اطلاعات جدید ثبت کنید و فیلد وضعیتش رو 0 قرار بدید. تا اینجای کار اگر ما رکوردهایی که فیلد وضعیتشون 0 هست رو سلکت کنیم، درخت فعلی یعنی آخرین تغییرات کاربر به دست میاید و سابقه تغییرات رو هم داریم.
    برای حالتی که میخواهید تغییرات قبلی رو ببینید 2 حالت وجود داره یکی اینکه مثل حالت Undo , Redo باشه و با هر بار Back زدن، یک تغییر قبلی نمایش داده بشه. که در اینجا میشه با استفاده از id رکورد تمام رکوردهایی که idشون کمتر و مساوی با رکورد فعلی هست و فیلد وضعیتشون مساوی 0 هست(به جز رکورد جاری) رو نمایش داد و همینطور برای رکوردهای کمتر.
    ولی یه حالت هم وجود داره که کاربر امروز یه درختی رو ذخیره کنه بعد فردا چند رکورد رو ویرایش کنه و چند تا رو حذف کنه و کل این تغییرات رو بعنوان یک درخت جدید ذخیره کنه. یعنی شما وقتی Undo میزنید یکی یکی تغییرات رو نمایش نده و یکدفعه برگرده به قبل از اون 10 تغییر. اینجا میشه از تاریخ کمک گرفت یا یک فیلد جدید. به اینصورت که یک دکمه ذخیره نهایی باشه و وقتی اولین بار اطلاعات ذخیره میشه همه رکوردها مقدارشون 1 باشه. در سری های بعدی تغییرات و حذف و اضافه ها رو پیدا کنیم و مقدار این فیلد رو برای اونها 2 بگذاریم و ...

    البته میگم تست نشده ولی امتحان کنید ضرر نداره!

  7. #7

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

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

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

  8. #8
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    نقل قول نوشته شده توسط Mahmoud Zaad مشاهده تاپیک
    سلام
    چیزی که به نظر من می رسه و البته تست نشده، شما در این مورد کلاً نباید رکوردی رو حذف یا ویرایش کنید. یعنی اولاً یه فیلد داشته باشید که نشان دهنده وضعیت رکورد باشه به این صورت که 0 برای رکورد فعال، 1 برای رکورد ویرایش شده و 2 برای رکورد حذف شده. حالا هر تغییر یا حذفی که اتفاق افتاد از یک طرف فیلد وضعیت در رکورد مورد نظر رو ویرایش یعنی اون فیلد وضعیت رو به 1 یا 2 تغییر بدید. از طرف دیگه اگر رکورد ویرایش بود یک رکورد جدید با اطلاعات جدید ثبت کنید و فیلد وضعیتش رو 0 قرار بدید. تا اینجای کار اگر ما رکوردهایی که فیلد وضعیتشون 0 هست رو سلکت کنیم، درخت فعلی یعنی آخرین تغییرات کاربر به دست میاید و سابقه تغییرات رو هم داریم.
    برای حالتی که میخواهید تغییرات قبلی رو ببینید 2 حالت وجود داره یکی اینکه مثل حالت Undo , Redo باشه و با هر بار Back زدن، یک تغییر قبلی نمایش داده بشه. که در اینجا میشه با استفاده از id رکورد تمام رکوردهایی که idشون کمتر و مساوی با رکورد فعلی هست و فیلد وضعیتشون مساوی 0 هست(به جز رکورد جاری) رو نمایش داد و همینطور برای رکوردهای کمتر.
    ولی یه حالت هم وجود داره که کاربر امروز یه درختی رو ذخیره کنه بعد فردا چند رکورد رو ویرایش کنه و چند تا رو حذف کنه و کل این تغییرات رو بعنوان یک درخت جدید ذخیره کنه. یعنی شما وقتی Undo میزنید یکی یکی تغییرات رو نمایش نده و یکدفعه برگرده به قبل از اون 10 تغییر. اینجا میشه از تاریخ کمک گرفت یا یک فیلد جدید. به اینصورت که یک دکمه ذخیره نهایی باشه و وقتی اولین بار اطلاعات ذخیره میشه همه رکوردها مقدارشون 1 باشه. در سری های بعدی تغییرات و حذف و اضافه ها رو پیدا کنیم و مقدار این فیلد رو برای اونها 2 بگذاریم و ...

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

  9. #9
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: ذخیره تاریخچه تغییرات ساختار درختی

    درسته با اتونامبر به مشکل میخوریم.

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

  1. کمک در طراحی ساختار درختی و ذخیره آن در دیتابیس
    نوشته شده توسط ibd_iran در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 2
    آخرین پست: شنبه 17 آبان 1393, 19:37 عصر
  2. سوال: تریگری برای ذخیره تغییرات ساختار کل دیتابیس
    نوشته شده توسط مرتضی حمزه ئی در بخش SQL Server
    پاسخ: 2
    آخرین پست: چهارشنبه 09 بهمن 1387, 10:45 صبح
  3. ذخیره آخرین تغییرات در یک فایل
    نوشته شده توسط m_reza در بخش SQL Server
    پاسخ: 5
    آخرین پست: پنج شنبه 05 آذر 1383, 23:51 عصر
  4. ساختار درختی
    نوشته شده توسط abdolwahab در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: شنبه 21 شهریور 1383, 10:04 صبح
  5. چطور ساختار درختی بسازم؟
    نوشته شده توسط Asad.Safari در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 28 تیر 1383, 20:24 عصر

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

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