arash_hemmat
یک شنبه 05 شهریور 1385, 04:26 صبح
سلام
من یک درخت شامل اطلاعات یک سیستم رو در دیتابیس ذخیره کردم و نیاز به عملیات پیمایش این درخت دارم و ترجیح میدم از دستورات SQL استفاده کنم ولی موفق نشدم کوئری مناسبی برای اینکار پیدا کنم.
برای سادگی کار درخت رو اینطور در نظر میگیریم که هر گره دارای دو گره راست و چپ و یک پدر هست به جدول زیر توجه کنید: (تصویری از همین درخت (http://hemmat.info/archive/tree.jpg))
---------------------------------------------------------
id name parent right_child left_child -
---------------------------------------------------------
1 ali 0 2 3 -
2 hasan 1 4 5 -
3 reza 1 null null -
4 saman 2 null null -
5 rahman 2 6 null -
6 hamed 5 null null -
---------------------------------------------------------
خوب حالا مثلا میخواهیم ببینیم که آیا hamed زیر مجموعه reza هست یا نه؟
یا اینکه آیا در زیر مجموعه های hasan کسی بنام hamed وجود داره یا نه؟
برای پاسخ دادن به این پرسشها ما نیاز به پیمایش درخت داریم ولی چطور؟؟؟!!!
من یک درخت شامل اطلاعات یک سیستم رو در دیتابیس ذخیره کردم و نیاز به عملیات پیمایش این درخت دارم و ترجیح میدم از دستورات SQL استفاده کنم ولی موفق نشدم کوئری مناسبی برای اینکار پیدا کنم.
برای سادگی کار درخت رو اینطور در نظر میگیریم که هر گره دارای دو گره راست و چپ و یک پدر هست به جدول زیر توجه کنید: (تصویری از همین درخت (http://hemmat.info/archive/tree.jpg))
---------------------------------------------------------
id name parent right_child left_child -
---------------------------------------------------------
1 ali 0 2 3 -
2 hasan 1 4 5 -
3 reza 1 null null -
4 saman 2 null null -
5 rahman 2 6 null -
6 hamed 5 null null -
---------------------------------------------------------
خوب حالا مثلا میخواهیم ببینیم که آیا hamed زیر مجموعه reza هست یا نه؟
یا اینکه آیا در زیر مجموعه های hasan کسی بنام hamed وجود داره یا نه؟
برای پاسخ دادن به این پرسشها ما نیاز به پیمایش درخت داریم ولی چطور؟؟؟!!!