PDA

View Full Version : سوال: طراحی بانک اطلاعاتی برای داشتن شاخه ها و زیر شاخه ها در یک جدول



tafrihat
چهارشنبه 16 تیر 1389, 01:15 صبح
سلام
من تا قبل از دیدن یک پروژه همیشه شاخه ها و زیر شاخه ها رو توی 2 تا جدل جداگانه میزاشتم
اما فهمیدم که میشه راحت تر توی یک جدول هم اینکارو کرد
اما دقیق متوجه نشدم به چه صورت است
اگه ممکنه یک جدل برام طراحی کنید و اینکه فیلد ها چه ارتباطی با هم باید داشته باشند و برای نمایش اون ها از چه کوئری استفاده کنم

pashaie
چهارشنبه 16 تیر 1389, 07:13 صبح
به اینجا سر بزن:
http://www.ozzu.com/programming-forum/php-mysql-multi-level-tree-categories-t70918.html
http://www.ozzu.com/programming-forum/creating-category-system-with-multiple-sub-categories-t63685.html#p339655

http://forums.digitalpoint.com/showthread.php?t=1317234

اینم با سه تا جدول
http://www.tonymarston.net/php-mysql/tree-structure.html

صابر طهماسبی
چهارشنبه 16 تیر 1389, 09:43 صبح
سلام
با تشکر از دوست گرامی pashaie (http://barnamenevis.org/forum/member.php?u=69316)
می توانید جدول را به شکل زیر طراحی کنید:



create table test
(
id int auto_increment primary key not null,
parent_id int,
title varchar(25)
);
هر عنوان ممکن است خودش زیرشاخه باشد یا نباشد اگر زیر شاخه بود شما parent_id آن را برابر id سر شاخه ی آن قرار دهید و اگر خودش سرشاخه بود و parent نداشت parent_id آن را برابر 0 قرار دهید.
برای نمایش آنها هم شما باید اول سرشاخه ها را دریافت کنید و هربار که یک سرشاخه را دریافت می کنید باید چک کنید آیا زیر شاخه دارد یا نه آگر دارد یک حلقه با دفعات تکرار تعداد زیر شاخه های آن اجرا می کنید و با استفاده از لیست ها آنها را نمایش می دهید البته اگر شما بخواهید هر زیرشاخه خودش تعدادی فرزند داشته باشد باید همین کار را برای زیرشاخه ها هم تکرار کنید.