PDA

View Full Version : بهترین روش برای تفکیک Category های دیتابیس



Behnama
چهارشنبه 10 مرداد 1386, 10:43 صبح
من یک دیتابیس دارم که قراره چندین نوع محصول رو بازیابی کنم ازش . می خوام بدونم که بهترین روش برای اینکه محصولات رو در دسته بندی های مختلف و زیردسته بندیها ( Sub Categories ) قرار بدم چیه ؟ چون من الان 4 تا جدول دارم که به ترتیب از بالا به پایین هر دسته و زیرشاخه های اون رو مشخص می کنه و کارم خیلی سخت شده .

nazaninam
چهارشنبه 10 مرداد 1386, 10:52 صبح
میتونید همه شاخه ها و زیر شاخه ها رو داخل یک جدول قرار بدید !

Behnama
چهارشنبه 10 مرداد 1386, 13:33 عصر
متوجه منظورتون نمی شم . من می خوام روی رتبه های مختلف جدولم کنترلهای جداگانه ای داشته باشم . اگر همه رو توی یک جدول بگذارم که ... !؟ اگر بخوام مثال بزنم که دقیقا منظورم روشن بشه : من تعدادی محصول دارم که قراره دسته بندی بشن . هر دسته ممکنه تعدادی زیر دسته داشته باشه و یا اصلا زیردسته نداشته باشه . از طرف دیگه همه دسته ها ، تعداد زیر دسته هاشون یکسان نیست . من میخوام کاری کنم که به عنوان مثال اگر یک دسته ای ، دو طبقه زیردسته داره ، این دو طبقه رو با یک ListView نشون بدم و در نهایت ، اعضای دسته آخر رو نمایش بدم و اگر دسته اول 3 تا زیردسته داره ، باز هم بتونم هر 3 تا رو در ListView نشون بدم و بعد اعضای دسته سوم رو در GridView نمایش بدم . بهترین راه برای تشکیل جدولم چیه ؟

Kamyar.Kimiyabeigi
چهارشنبه 10 مرداد 1386, 15:22 عصر
اگر تعداد دسته بندیتون ثابت و مشخصه چرا به صورت master & detail تعریف نمیکنین؟ در نهایت هم برای بازریابی اطلاعات با inner join به اطلاعات دسترسی پیدا میکنین

Behnama
چهارشنبه 10 مرداد 1386, 22:31 عصر
با سلام .
من یک مقدار دقیقتر توضیح می دم . منظور از زیرمجموعه ، مجموعه ایست که دارای محصولات خاصی باشه و منظور از اعضا ، خودِ محصولات نهایی هستند .
الان من تعدادی مجموعه دارم . مثال :
مجموعه 1 دارای 10 زیر مجموعه است . مجموعه 2 که جزو مجموعه1 محسوب می شه ، خودش دارای 5 زیرمجموعه است ، اما مجموعه 3 که باز هم از زیرشاخه های 1 محسوب می شه ، دارای زیر مجموعه نیست . الان من سعی کردم که با 3 دیتالیست در صفحه این کار رو انجام بدم . اما ببینید مشکل چیه ...
وقتی روی مجموعه 1 کلیک می کنم ، یک دیتالیست باز میشه و زیرمجموعه های اون رو ( از جمله نام مجموعه 2 و 3 رو ) نشون می ده . اما مشکل اینجاست . اگر روی مجموعه 3 کلیک کنم ، می خوام اعضای اون در یک گریدویو دیده بشن . اما می خوام وقتی روی 2 کلیک می کنم ، به جای نمایش محصولات در دیتاگرید ، ( درست مثل کلیک روی 1 ) در یک دیتالیست دیگه ، نام زیرمجموعه های اون دیده بشن .
نمی دونم تونستم منظورم رو برسونم یا نه .

AminSobati
پنج شنبه 11 مرداد 1386, 19:55 عصر
دوست عزیزم،
شما میتونین از روش Adjacency List Model استفاده کنین. در این روش، هر رکورد، رده بالاتر از خودش رو با یک فیلد مشخص میکنه. مثلا ساختار جدول Employees در دیتابیس Northwind به همین صورته. فیلد ReportsTo نشون میده نفر رده بالایی چه کسی هستش.
حالا برای پیمایش ساختار درختی، روشهای متنوعی در SQL Server 2000/2005 وجود داره.