PDA

View Full Version : نقش فیلد های lft & rght توی جدول های نگه دارنده درخت ها



reza.palang
پنج شنبه 12 شهریور 1388, 19:02 عصر
سلام
اول چیزایی رو که میدونم رو میگم که اگر اشتباهه تصحیح بشه و اگر درسته استفاده کنن دوستان.
lft & rght دو طرف یک بازه رو مشخص می کنه که هر گره دیگه ای که توی این بازه قرار بگیره (lft و rght آنها طوری قرار بگیرند که از نظر عددی میان lft و rght گره پدر خودش قرار بگیره. مثلا [5,7] توی [1,24] قرار میگیره).
اشتباهی که من می کردم این بود که فکر میکردم این فیلد ها به ID گره های دیگه اشاره میکنه. که اینطور نیست.
و اگر بدون علم مقادیر این دو فیلد رو تغییر بدیم ترکیب و ترتیب درخت به هم میخوره. پس باید تنظیم این دو فیلد رو به خود Tree Behavior بسپاریم
و چیزی که فهمیدم اینه که با هر بار اضافه کردن یک گره به درخت و یا استفاده از اکشن های movedown & moveup فیلد های lft & rght تعداد زیادی از سطر های جدول تغییر میکنه که گاهی تمام سطر ها رو شامل میشه.

سوال: آیا این کار درستی هست که برای اضافه کردن و یا move کردن یک گره تعداد زیادی سطر رو update کرد؟
و آیا این بار زیادی رو روی سرور نمیذاره؟ بخصوص زمانی که تعداد سطر ها زیاد باشه. مثلا 2000 یا 2000,000 و یا بیشتر؟

zoghal
جمعه 13 شهریور 1388, 11:41 صبح
سلام
بله دقیقا همینطور هست. من این روش رو برای یک سیستم نتورک مارکتینگ پیاده سازی کردم. و مشکلی ندیدم.

reza.palang
جمعه 13 شهریور 1388, 15:03 عصر
یعنی با یه عملیات add ساده تمام سطر ها تغییر کنن موردی نداره/؟ به سرور فشار نمیاره؟
وقتی رکورها زایاد باشن..... ؟؟؟

zoghal
شنبه 14 شهریور 1388, 08:41 صبح
چون این پروژه که گفتم رو سرور اختصاصی بود متوجه فشاری تا الان نشدیم.
البته من برای اینگه اگر روزی این روش فشار آورد بتونم ساختار درختیم رو حفظ کنم و روشی دیگری استفاده کنم.
اومدم شناسه پدر نود رو هم نگه داری کردم . که گویا در کیک هم باید نود پدر رو نگه داری کنید