PDA

View Full Version : سوال : امکان ایجاد Tag در یک CMS



nasirb
چهارشنبه 03 اسفند 1390, 00:10 صبح
سلام دوستان
راستش من در حال نوشتن یک CMS هستم و این CMS یک بلاگ هم داره که خودم نوشتمش و از CMS های آماده استفاده نکردم حالا توی وبلاگش احتیاج دارم تا امکان ایجاد Tag به کسی که می خواد پست برو بذاره قرار بدم به تعداد نا معلوم و بعد بتونم از طریق Tag ها به نوشته هایی که با اون Tag نوشته شده دسترسی داشته باشم به طور مثال :
www.mysite.com/tag/programming
ممنون میشم اگه منبعی می شناسید معرفی کنید (فارسی یا انگلیسی ) یا کد و جدول هایی که لازم است رو کدش رو در قرار بدید . با تشکر !

امیـرحسین
چهارشنبه 03 اسفند 1390, 02:56 صبح
اگه سرچ کنید نمونه آماده پیدا میکنید. وردپرس هم منبع خوبیه برای بررسی و یادگیری.
در هر صورت منطق کلیش به این صورته:
سه جدول نیاز داریم:

posts: id, title,......
tags: id, name,....
posts_tags: post, tag
جدول posts که کارش مشخصه. جدول tags برای نگهداری تگهاست و جدول سوم برای ارتباط تگها و پستها. وقنی تگی به پستی اضافه میشه در واقع ما ID اون تگ به همراه ID پست به جدول posts_tags اضافه میکنیم و خب مسلما این جدول باید براساس هر دو ستون tag و post یونیک باشه یعنی نمیشه یک تگ رو دوبار به یک پست نسبت داد.
برای خوندن تگهای یک پست داریم:
SELECT tags.* FROM tags
JOIN posts_tags ON posts_tags.post=5 AND posts_tags.tag=tags.id
WHERE 1

و برای گرفتن پستهای یک تگ برعکس عمل میکنیم:
SELECT posts.* FROM posts
JOIN posts_tags ON posts_tags.tag=8 AND posts_tags.post=posts.id
WHERE 1

بر همین اساس میشه توسعه‌اش داد و مثلا تگها رو گروه‌بندی کرد یا به جدول tags تعداد پستهای مرتبطش رو ذخبره کرد یا هر کار دیگه‌ای...

ravand
چهارشنبه 03 اسفند 1390, 08:32 صبح
http://barnamenevis.org/showthread.php?319805-%D9%85%D8%B4%D9%83%D9%84-%D8%AA%D9%83%D8%B1%D8%A7%D8%B1-%D8%B4%D8%AF%D9%86-%D9%83%D9%84-%D9%82%D8%A7%D9%84%D8%A8

nasirb
چهارشنبه 03 اسفند 1390, 13:55 عصر
@ آقای امیر حسین
آقا ممنون از لطفی که کردی و مشکلم با طراحی دیتابیس برطرف شد اما موردی دیگه ای که مشکل دارم اینه که به چه صورت آدرس را به صورت زیر در بیارم :
www.mysite.com/tag/example
نه به صورت
www.mysite.com/tag/example.php
می خوام به صورتی دربیاد که php . در پایان آدرس نباشه.راستش من کد چند تا اسکریپت خوندم اما نفهمیدم به چه صورت آدرس رو تغییر دادند !
با تشکر .