View Full Version : ذخیره و بازیابی ساختارهای درختی دز دیتابیس
vb_nima
جمعه 10 فروردین 1386, 14:29 عصر
با سلام.
از دوستان کسی میدونه چطوری میشه یه ساختار درختی مثل لیست فولدرها را تو دیتابیس ذخیره کرد و بعد دوباره به همون صورت درختی بازیابی کرد.
__H2__
شنبه 11 فروردین 1386, 12:42 عصر
سلام
راحت است کافیست مثل همان ساختمان داده های معمولی در RAM یکی هم به صورت جدولی بسازید:
Column1=ID_Item (AutoNumber or Integer)
Column2=ID_Parent (Integer)
Column3=Name (String)
Cloumn4=Value (String)
مثلاَ با یک جول سه ستونی مثل بالا.
یک ستون شاخص داریم که کلید جدول هم است و یک ستون یا فیلد که به شاخص والد اشاره میکند. یعنی هر فرزندی میداند پدرش کیست، در نتیجه در یک جدول واحد رابطه تودرتویی بی نهایت پیدا میکنم، برای درک بیشتر به این داده ها نگاه کنید و فکر کنید در جدول هستند!
ID_Item | ID_Parent | Name | Value
----------------------------------
0 0 Root -
1 0 AAA ???
2 0 BBB ???
3 1 CCC ???
4 1 DDD ???
5 4 EEE ???
که تداعی کننده این درخت هستند:
+Root
--+AAA
--+CCC
--+DDD
--+EEE
--+BBB
vb_nima
یک شنبه 12 فروردین 1386, 02:35 صبح
دوست عزیز _H2__ خیلی ممنون روش شما را در مقالات انگلیسی که سرچ کردم هم دیدم ولی خوب یه کم بازیابیش سخت بود برام .فکر میکردم روش ساده تری هم شاید وجود داشته باشه. با این وجود ممنون.
__H2__
چهارشنبه 15 فروردین 1386, 11:43 صبح
سلام
روش ساده تر؟؟؟؟؟ در این روش فقط با یک جدول ساده بینهایت سلسله مراتب تودرتویی پیدا میکنیم! (این دقیقا عین ساختمان داده های در RAM است و خیلی راحت قابل تبدیل به هم هستند)
من قبلاَ همین را به کس دیگری گفتم آخرش رفت و دو جدول کاملا مشابه ساخت و یکی را به دیگر لینک کرد و به یک تودرتویی رضایت داد!!!!!!!!!
پیاده سازیش خیلی راحت است.
در یک حلقه یا با یک تابع خودفراخان میتوانید از مسیر به ID برسید.
من خودم یکبار (چند سال قبل) یک کلاسس برای ذخیره تنظیمات بر این مبنا طراحی کرده بودم ولی با آمدن Net. بی خیالش شدم.
بحرحال امیدوارم کسی اگر راه راحت تری دارد بیان کند و مشکل شما حل شود.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.