• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
طراحی جدول دارای گروه و زیر گروه
#1
سلام

بچه ها بنظرتون برای طراحی یه جدول که لیست محصولات و زیر گروه هاش رو نگه میداره، راه بهینه چیه؟

من این راه بنظرم میآد، مثلاً یه همچین چیزی داریم:

محصولات:

+کامپیوتر
__________ +لپ تاپ
____________________ -ایسوس
____________________ -سونی
____________________ -اچ پی
__________ +دسکتاپ
____________________+اپل رومیزی
______________________________+مدل D8980
________________________________________ - با Ram DDR3 4mb
________________________________________ - با Ram DDR3 8mb
______________________________ - مدل Fg9900
________________________________________- پک ایز ایران

+پرینتر
__________+hp
____________________-HP1100
____________________-HP1287
.
.
.

خب من نظرم اینه که جدول زیر رو داشته باشم:

Products:

ID
Name
Parent
ParentID

----------------------------
1
Computer
Flase
0
------------
2
LapTop
true
1
------------
3
Desktop
true
1
------------
4
Asus
true
2
------------
5
sony
true
2
------------
6
Apple
true
3
------------
7
D8980
true
6
------------
8
DDr3 8mb
true
7
------------
9
DDr3 4mb
true
7

.
.
.

خب این جدول با 9 تا رکورد
از نظر رابطه ای درسته هست، اما از نظر بهینگی چی؟
اینطوری من برای هر رکورد باید زیر گروه هاش رو هم کوئری بگیرم
یعنی برای 9 تا رکورد الان 7 تا کوئری دارم... Confused
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#2
مگه این رکوردها داخل یک جدول نیستند؟
همشون رو با یه select بگیر و بنداز داخل یه حلقه برای مرتب سازی.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Reza
#3
یعنی بر اساس چی مرتب کنم؟
یه توضیح بیشتر میدی احسان؟
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#4
من که از اون نوشته های در همت چیزی نفهمیدم . ولی برای ساخت یک پایگاه داده تمییز، من ترجیح میدم یک جدول برای محصولات گروه اصلی و یک جدول برای زیر مجموعه ها درنظر بگیریم. بدین صورت،


فایل‌های پیوست تصاویر بندانگشتی
   
غایب
  پاسخ
تشکر شده توسط :
#5
علیرضا عمق درخت معلوم نیست Wink

ممکنه چندین تا زیر گروه داشته باشیم...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#6
یه نگاهی به این بنداز ببین به دردت میخوره؟
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Reza hamid_80386
#7
دقیقاً چیزی که خودت نوشتی درسته حمید جان .
اون چیزی که احسانم میگه
نقل قول:مگه این رکوردها داخل یک جدول نیستند؟
همشون رو با یه select بگیر و بنداز داخل یه حلقه برای مرتب سازی.
اینم درسته ولی خودمونیم داش احسان پدر آدمو در میارهUndecided

یه راه حل بهتر .
شما با همون روش خودت ، 7 تا کوئری مثلاً اطلاعات رو واکشی کن ، بریز توی یک فایل (یعنی کش کن) بعد دیگه لازم نیست در هر بازدید اون کوئری های سنگین رو انجام بدی .
مجموعه ها رو از روی کش بخون .
هر وقتم تغییری در موضوعات دادی ، کش رو پاک کن و دوباره بنویسش .

به همین راحتیBig Grin

اگه خواستی بیشتر توضیح میدم .

پ.ن : اگه واسه پروژه ات از فریم ورک استفاده نکردی یه کلاس دیتابیس ezSQL رو ویرایش کردم ، کش ها رو دسته بندی کردم ، یعنی کل کوئری ها رو دسته بندی کش میکنه لذت ببری .

وقت کنم یه تاپیک توی انجمن میدم

آها راستی اون فیلد Parent رو بردار اضافیه .
پیشفرض هر رکوردی که ParentID برابر صفر باشه یعنی موضوع مادر .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : hamid_80386
#8
نقل قول:شما با همون روش خودت ، 7 تا کوئری مثلاً اطلاعات رو واکشی کن ، بریز توی یک فایل (یعنی کش کن) بعد دیگه لازم نیست در هر بازدید اون کوئری های سنگین رو انجام بدی .

رضا دقیقاً بگو باید چیکار کنم...

ضمن این، یه جا هم دیدم از یه روش ذخیره تو فایل xml استفاده کرده بودن، من با xml زیاد ور نرفتم تا حالا، ولی اونم به نظرم روش جالبی بود
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#9
هر کوئری رو که اجرا میکنی ، دستور sql رو md5 کن واسه اسم فایل ، نتیجه ها رو هم سریالیز کن بریز توی فایل .
قبل از کوئری چک کن چنین فایل(یعنی md5 دستور sql) وجود داره یا نه اگه وجود داشت ، از روی اون فایل بخونه اگه نه کوئری رو اجرا کنه و کش رو بنویسه .
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#10
آها، باید بریزم تو فایل پس
من با فایل کار نکردم، باید مطالعه کنم
لینک خوب داری بده واسه مطالعه... Wink
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان