PDA

View Full Version : همفکری: ساختار اختصاص تگ به سطرهای جدول



امیـرحسین
دوشنبه 12 بهمن 1388, 16:28 عصر
سلام
من دارم یه جدولی طراحی می کنم که اطلاعات اصلیش در هر سطر قرار میگیرند شبیه این:

+------+-------------------+-----------------+
| id | name | family
+------+-------------------+-----------------+
| 1 | some name | some family |
+------+-------------------+-----------------+
| 2 | some another name | some family
+------+-------------------+-----------------+
حالا میخوام یه سری تگ با تعداد و انواع متفاوت رو بهشون اختصاص بدم یعنی مثلا سطر اول سه تا تگ tag1و tag2 و tag3 داره. سطر دوم یه تگ tag4 و مثلا سطر سوم اصلا تگ نداره.

یه روش استاندارد وجود داره که بیام یه جدول برای تگها ایجاد کنم و مثلا بگم سطر فلان جدول بالا این تگها رو داره و لیست تگها رو با کاما جدا کنم. یه راه دیگه اینه که برای هر تگ و هر سطر یه ردیف درست کنم که مثلا فلان سطر فلان تگ رو داره و و و

اما من دنبال روش بهینه هستم که بتونم از طریق mysql مثلا همه سطرهایی که یه تگ خاص دارند رو پیدا کنم. تنها راهی که پیدا کردم این بود که تگها رو با کاما جدا کنم و از طریق توابع خود mysql که لیست کامایی رو جدا می کنه بتونم مقادیر رو پیدا کنم که اونم به نظر بهینه نمیاد.


کسی ایده ای داره؟

maysamscript
سه شنبه 13 بهمن 1388, 08:52 صبح
کافیه یک جدول از تگ ها داشته باشید. کلید خارجی جدول اصلی در این جدول قرار می گیره. اینجوری شما یک رابطه یک به چند خواهید داشد. یعنی هر سطر یک یا چند تگ میتونه در جدول تگ ها داشته باشه.
توصیه میکنم هر تگ را در یک رکورد قرار دهید.

راه حل بهینه تر اینه که یک رابطه چند به چند با تگ ها داشته باشید. اینجوری از تکرار تگ ها جلوگیری میشه. اینکار با افزودن جدول سوم به عنوان جدول واسط شدنی هست. رابطه چند به چند میگه هر سطر میتونه چند تگ داشته باشه و هر تگ میتونه مال چند سطر باشه.

اگر توضیح بیشتر لازمه بگید، در خدمتم

اعظم
سه شنبه 13 بهمن 1388, 11:22 صبح
به سیستم وردپرس یک نگاهی بنداز به شیوه جالبی اینکار رو کرده. روابط رو باید بین چهار جدول زیر
(http://www.aazamzandi.com:2082/3rdparty/phpMyAdmin/tbl_structure.php?db=aazam_wordpress&table=wp_term_relationships&token=38fac659b244a5db2cfdf25914da3b03)پیدا کنی .

wp_term_relationships
wp_terms
wp_term_taxonomy
wp_posts

امیـرحسین
پنج شنبه 15 بهمن 1388, 14:20 عصر
من ساختار وردپرس رو چک کردم. در واقع یه جدول داره با دو تا ستون که ستون اول برای ID پست و ستون دوم برای ID تگ.
این یعنی اگر 10000 تا پست داشته باشیم و هر پست میانگین سه تا تگ داشته باشه. میشه 30000 سطر برای این جدول که اگر ایندکس بشه فکر کنم مشکلی نداشته باشه.

maysamscript عزیز، پیشنهاد شما هم مشابه همین بود. اگر نه یکم بیشتر توضیح بدید.

ممنون

sama01
پنج شنبه 15 بهمن 1388, 15:09 عصر
من خیلی تجربه این کار را ندارم.
ولی به نظرم کار منطقی همین کاریه که در wordpress صورت می‌گیره.