PDA

View Full Version : ایجاد برچسب ( کلمات کلیدی) Keywords در asp.net سی شارپ



marya101000
سه شنبه 18 تیر 1392, 19:11 عصر
با سلام خدمت مهندس های عزیز

دوستان من یک پایگاه داده دارم که محصولات وارد میکنم میخوام همراه هر محصول که وارد میکنم

کلمات کلیدی مخصوص ان محصول هم وارد کنم
چطور میتونم متنی که بعنوان کلمات کلیدی وارد پایگاه داده میکنم برای نمایش تبدیل شود به کلمات کلیدی

ممنون میشم اگه بتونید کمکم کنید
تشکراتتتتتتتتتتت :لبخندساده:

asp .net سی شارپ

marya101000
سه شنبه 18 تیر 1392, 19:45 عصر
مهندس ها کمکککککک کنید تو رو خدا :افسرده:

Alghoochi
سه شنبه 18 تیر 1392, 22:00 عصر
با سلام خدمت مهندس های عزیز

دوستان من یک پایگاه داده دارم که محصولات وارد میکنم میخوام همراه هر محصول که وارد میکنم

کلمات کلیدی مخصوص ان محصول هم وارد کنم
چطور میتونم متنی که بعنوان کلمات کلیدی وارد پایگاه داده میکنم برای نمایش تبدیل شود به کلمات کلیدی

ممنون میشم اگه بتونید کمکم کنید
تشکراتتتتتتتتتتت :لبخندساده:

asp .net سی شارپ

بهترین راه اینه که واسه‌ی کلمات کلیدی یه جدول (مثلا Tags) و برای کلمات استفاده شده توی محصولات یه جدول دیگه (مثلا ProductTags) درنظر بگیری. وردپرس هم همین‌کارو می‌کنه. هرکلمه‌ی کلیدی مثلا کلمه‌ی کلیدی x توی جدول Tags وارد می‌شه و برای هرمحصولی که به کلمه‌ی x ارتباط داشته باشه یه سطر به جدول ProductTags وارد می‌شه. این سطر باید شامل کدمحصول و کدبرچسب (Tag) باشه. برای جدول ProductTags کلیداولیه باید ترکیب کدمحصول و کدبرچسب باشه.
تئوری کار رو گفتم. خودت پیاده‌ش کن. امیدوارم خوب و ساده توضیح داده باشم.

marya101000
سه شنبه 18 تیر 1392, 22:17 عصر
بهترین راه اینه که واسه‌ی کلمات کلیدی یه جدول (مثلا Tags) و برای کلمات استفاده شده توی محصولات یه جدول دیگه (مثلا ProductTags) درنظر بگیری. وردپرس هم همین‌کارو می‌کنه. هرکلمه‌ی کلیدی مثلا کلمه‌ی کلیدی x توی جدول Tags وارد می‌شه و برای هرمحصولی که به کلمه‌ی x ارتباط داشته باشه یه سطر به جدول ProductTags وارد می‌شه. این سطر باید شامل کدمحصول و کدبرچسب (Tag) باشه. برای جدول ProductTags کلیداولیه باید ترکیب کدمحصول و کدبرچسب باشه.
تئوری کار رو گفتم. خودت پیاده‌ش کن. امیدوارم خوب و ساده توضیح داده باشم.


ببنید خوب چطور به صورت لینک در میاد ؟؟؟؟

من فکرم این بود برای هر محصولی که وارد میشه یک فیلد به نام تگ هم بزارم و همراه با محصولات در Table ذخیره بشه و بعد در datalist نمایش داده بشه

ولی مشکلم این است که نمی دونم چطور اون تگ هایی را که وارد میکنم بصورت لینک در بیاد :(

نظر شما چیه :افسرده:

marya101000
سه شنبه 18 تیر 1392, 22:50 عصر
بچه ها کسی میتونه کمک کن ؟؟؟؟؟؟؟؟؟؟؟

خواهشا بابا این همه مغز هست اینجا من بلد نیستم شما که استادمونید

لطفا کمک کنید اینو مشکلشو حل کنم :خجالت:

Alghoochi
سه شنبه 18 تیر 1392, 23:52 عصر
ببنید خوب چطور به صورت لینک در میاد ؟؟؟؟

من فکرم این بود برای هر محصولی که وارد میشه یک فیلد به نام تگ هم بزارم و همراه با محصولات در Table ذخیره بشه و بعد در datalist نمایش داده بشه

ولی مشکلم این است که نمی دونم چطور اون تگ هایی را که وارد میکنم بصورت لینک در بیاد :(

نظر شما چیه :افسرده:

این‌که برچسب‌ها در کنار محصولات تو یه جدول باشه اصلا بهینه نیست. چندتا مشکل اساسی داره: فرض کن واسه‌ی محصولاتت کلمه‌ی x رو به عنوان برچسب در نظر گرفتی. هربار که بخوای این کلمه رو واسه‌ی محصولاتت استفاده کنی مجبوری اونو وارد کنی. این باعث می‌شه که حجم بانک اطلاعاتیت زیاد بشه. به‌جز اون فکر اینو کردی که چجوری محصولاتی که به یه برچسب ربط دارند رو نشون بدی. ممکنه واسه‌ی یه محصول بیشتر از یه برچسب بشه در نظر گرفت، اینو چجوری می‌خوای حل کنی.
ولی واسه‌ی تبدیل به لینک باید بگم که شما باید اطلاعات برچسب‌ها رو از بانک بخونی و بعد اونو به لینک تبدیل کنی. می‌تونی از کامپوننت‌های دات‌نت استفاده کنی یا اینکه می‌تونی کدلینک‌ها ( <a href=""> رو خودت بسازی و توجایی از صفحه که می‌خوای اضافه کنی.

iranolom
چهارشنبه 19 تیر 1392, 00:11 صبح
همون ایجاد بانک و ذخیره کاملا منطقیه
البته من به این صورت ایجاد کردم میشه مثل من سه تا فیلدی یا همون دو فیلدی پیاده سازی کرد

فیلد کد کلمه کلیدی
فیلد کد مطلبی که قرار است این کلمه در آن مطلب نمایش داده شود
خود کلمه کلیدی

در این حالت میشه برای یه مطلب چندین کلمه کلیدی درج کرد
برای اینکه تبدیل به لینک بشه چند حالت وجود دارد اگر تعدادشون زیاده که
ساده ترین حالت خروجی گرفتن مثلا از طریق لیست ویو هستش بعد هم کلمات رو در تگ لینک a قرار داده بشه بصورت موئری به هر جا که دوست داریم لینک بشه

حالت دیگر هم میشه یه سری کلمه رو بصورت پیش فرض تعریف کرد که اگر در صفحه وجود داشت مثلا به فلان صفحه لینک براش قرار بده که فرم دقیقش الان یادم نیست ولی خودم از تو همین سایت مطالعه کردمش اگه برگدی پیداش می کنید
...
اینایی که گفتم بصورت تئوریک بود ولی خروجی گرفتنش خیلی آسونه و باقی قضایا

marya101000
چهارشنبه 19 تیر 1392, 00:52 صبح
این‌که برچسب‌ها در کنار محصولات تو یه جدول باشه اصلا بهینه نیست. چندتا مشکل اساسی داره: فرض کن واسه‌ی محصولاتت کلمه‌ی x رو به عنوان برچسب در نظر گرفتی. هربار که بخوای این کلمه رو واسه‌ی محصولاتت استفاده کنی مجبوری اونو وارد کنی. این باعث می‌شه که حجم بانک اطلاعاتیت زیاد بشه. به‌جز اون فکر اینو کردی که چجوری محصولاتی که به یه برچسب ربط دارند رو نشون بدی. ممکنه واسه‌ی یه محصول بیشتر از یه برچسب بشه در نظر گرفت، اینو چجوری می‌خوای حل کنی.
ولی واسه‌ی تبدیل به لینک باید بگم که شما باید اطلاعات برچسب‌ها رو از بانک بخونی و بعد اونو به لینک تبدیل کنی. می‌تونی از کامپوننت‌های دات‌نت استفاده کنی یا اینکه می‌تونی کدلینک‌ها ( <a href=""> رو خودت بسازی و توجایی از صفحه که می‌خوای اضافه کنی.



دوست خوبم ممنون از توضحیتون واقعا خوب بود فقط مشکلم لینک کردن متن فیلد که میخوام بخونم از پایگاه داده

اگه اینو توضیح بدید ازتون ممنون میشم

برای یک مبتدی توضیح بدید :لبخندساده:

farhud
چهارشنبه 19 تیر 1392, 09:33 صبح
شما باید یک صفحه به عنوان جستجو در نظر بگیری. یعنی صفحه‌ای باشه که وقتی روی هر تگی کلیک میشه، محصولاتی که آن تگ را دارند نمایش داده بشه. برای نمونه:
www.site.com/tags.aspx?tagId=4546

حالا شما با گرفتن tagId از آدرس، تمام محصولاتی که آن برچسب را گرفته‌اند نمایش می‌دهی.

برای لینک کردن هم می‌تونی از HyperLink استفاده کنی و مقدار NavigateUrl آن را با کدنویسی مقدار دهی کنی.

البته چون هر محصول ممکنه بیش از یک تگ داشته باشه، بهتره که از Repeater استفاده کنی.

Alghoochi
چهارشنبه 19 تیر 1392, 20:44 عصر
شما باید یک صفحه به عنوان جستجو در نظر بگیری. یعنی صفحه‌ای باشه که وقتی روی هر تگی کلیک میشه، محصولاتی که آن تگ را دارند نمایش داده بشه. برای نمونه:
www.site.com/tags.aspx?tagId=4546

حالا شما با گرفتن tagId از آدرس، تمام محصولاتی که آن برچسب را گرفته‌اند نمایش می‌دهی.

برای لینک کردن هم می‌تونی از HyperLink استفاده کنی و مقدار NavigateUrl آن را با کدنویسی مقدار دهی کنی.

البته چون هر محصول ممکنه بیش از یک تگ داشته باشه، بهتره که از Repeater استفاده کنی.

بهتره که خود کلمه‌ی کلیدی توی لینک باشه.

Alghoochi
چهارشنبه 19 تیر 1392, 20:56 عصر
دوست خوبم ممنون از توضحیتون واقعا خوب بود فقط مشکلم لینک کردن متن فیلد که میخوام بخونم از پایگاه داده

اگه اینو توضیح بدید ازتون ممنون میشم

برای یک مبتدی توضیح بدید :لبخندساده:

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


http://yoursite.com/tags/keyword.aspx
یا
http://yoursite.com/tags/1-keyword.aspx
یا
http://yoursite.com/showtag.aspx?tagid=1&title=keyword

اگه بخوای از ساختار اول استفاده کنی باید آدرس‌ها رو بازنویسی کنی (کار چندان پیچیده‌ای نیست). فقط توی کدنویسی باید بیای کلمه رو از بانک بخونی و اول کدکلمه رو پیدا کنی و وقتی کدرو پیدا کردی توی جدول دوم همه‌ی محصول‌‌هایی که با این کدبرچسب ارتباط دارن رو بخونی و نمایش بدی.
ساختار دوم هم دقیقا مثل اولیه ولی فرقش توی اینه که کدبرچسب جزئی از لینکه. ولی روال کار (بازنویسی و خوندن محصولات از بانک) دقیقا مثل قبله.

ساختار سوم هم مثل اولیه فقط با این تفاوت که نیازی به بازنویسی نداره و کدبرچسب توی خود لینک قرار داره. همون‌جور که فرهود گفتن کافیه کد رو که یه QueryString هست بخونی و همه‌ی محصولاتی که با این کد برچسب در ارتباطن نمایش بدی با این تفاوت که من خود کلمه رو هم جزئی از لینک در نظر گرفتم چون اگه کلمه‌ای توی خود لینک باشه برای گوگل اهمیت بیشتری داره تا اینکه جزئی از متن صفحه باشه. توی کدنویسی اصلا نیازی به خوندن title نداری و این فقط جنبه‌ی سئو داره.

marya101000
چهارشنبه 19 تیر 1392, 22:54 عصر
از همتون ممنونم هوراااااااااا درست شد



دوستای گلم تنها یک مشکل کوچولو داره اونم اینه که مدیر سایت اول باید بره تو قسمت جدول تگ ها ابتدا تگ هاشو مشخص کنه به این صورت که

بنویس به عنوان مثال

ID Tag : عدد
Name tag : شرح تگ

1
بازی کامپیوتری,بازی کامپیوتری ارزان,بازی,بازی پی سی

2
بازی پلی استیشن,بازی پلی استیشن 2

و...

بعدش برای محصولی که می خواهد تگش وارد بشود فقط کد تگ را وارد میکند یعنی مدیر سایت نمیتواند مثل بلاگفا مستقیم تگها را وارد کند باید کد تگ را وارد بکند
بعد کد تگ با کدتگ در جدول محصولات مقایسه میشود و در نهایت محصولاتی که این ایدی را داشته باشند در صفحه بعد نمایش داده میشود

البته مشکل حادی نیست نظر شما چیه :D:D:D:D ???????????

marya101000
چهارشنبه 19 تیر 1392, 22:54 عصر
برای خوندن کلمه‌ی کلیدی می‌تونید خود کلمه یا کدکلمه‌ توی بانک اطلاعاتی رو توی لینک قرار بدی. مثلا می‌تونید ساختار لینکت این‌جوری باشه


http://yoursite.com/tags/keyword.aspx
یا
http://yoursite.com/tags/1-keyword.aspx
یا
http://yoursite.com/showtag.aspx?tagid=1&title=keyword

اگه بخوای از ساختار اول استفاده کنی باید آدرس‌ها رو بازنویسی کنی (کار چندان پیچیده‌ای نیست). فقط توی کدنویسی باید بیای کلمه رو از بانک بخونی و اول کدکلمه رو پیدا کنی و وقتی کدرو پیدا کردی توی جدول دوم همه‌ی محصول‌‌هایی که با این کدبرچسب ارتباط دارن رو بخونی و نمایش بدی.
ساختار دوم هم دقیقا مثل اولیه ولی فرقش توی اینه که کدبرچسب جزئی از لینکه. ولی روال کار (بازنویسی و خوندن محصولات از بانک) دقیقا مثل قبله.

ساختار سوم هم مثل اولیه فقط با این تفاوت که نیازی به بازنویسی نداره و کدبرچسب توی خود لینک قرار داره. همون‌جور که فرهود گفتن کافیه کد رو که یه QueryString هست بخونی و همه‌ی محصولاتی که با این کد برچسب در ارتباطن نمایش بدی با این تفاوت که من خود کلمه رو هم جزئی از لینک در نظر گرفتم چون اگه کلمه‌ای توی خود لینک باشه برای گوگل اهمیت بیشتری داره تا اینکه جزئی از متن صفحه باشه. توی کدنویسی اصلا نیازی به خوندن title نداری و این فقط جنبه‌ی سئو داره.



ممنون از شما :)

Alghoochi
پنج شنبه 20 تیر 1392, 00:24 صبح
از همتون ممنونم هوراااااااااا درست شد



دوستای گلم تنها یک مشکل کوچولو داره اونم اینه که مدیر سایت اول باید بره تو قسمت جدول تگ ها ابتدا تگ هاشو مشخص کنه به این صورت که

بنویس به عنوان مثال

ID Tag : عدد
Name tag : شرح تگ

1
بازی کامپیوتری,بازی کامپیوتری ارزان,بازی,بازی پی سی

2
بازی پلی استیشن,بازی پلی استیشن 2

و...

بعدش برای محصولی که می خواهد تگش وارد بشود فقط کد تگ را وارد میکند یعنی مدیر سایت نمیتواند مثل بلاگفا مستقیم تگها را وارد کند باید کد تگ را وارد بکند
بعد کد تگ با کدتگ در جدول محصولات مقایسه میشود و در نهایت محصولاتی که این ایدی را داشته باشند در صفحه بعد نمایش داده میشود

البته مشکل حادی نیست نظر شما چیه :D:D:D:D ???????????

اول اینکه Tag ID رو کلید اولیه جدولت در نظر بگیر و اون رو Identity کن تا خود SQL اونو مقداردهی کنه.
دوم اینکه «بازی کامپیوتر» و «بازی کامپیوتری ارزان» رو دوتا تگ جدا در نظر بگیر نه یکی.

اما برای مشکلت: می‌تونی توی سیستم مدیریتت به جای وارد کردن تگ‌ها به صورت تک به تک اونا رو یه‌جا وارد کنی. یه فیلد (TextBox گزینه‌ی خوبیه) در نظر بگیری که مدیرسایت تگ‌ها رو یک‌جا وارد کنه. فقط باید برچسب‌ها با یه نماد خاص (مثلا ; یا ,) از هم جدا بشن. بعد توی کدنویسی بیای و برچسب‌ها رو از هم جدا کنی (با تابع Split خیلی راحت می‌شه چنین کاری کرد) و برای هر برچسب چک‌ کنی که این برچسب توی بانک اطلاعاتی هست یا نه، اگه بود که کد اون برچسب و کدمحصول به جدول برچسب‌محصولات اضافه بشه. اگه نبود، اول باید اون کلمه به جدول برچسب‌ها اضافه بشه، بعد کدمحصول به جدول برچسب‌محصولات اضافه بشه.
اگه بتونی سیستم فروشگاهت رو این‌جوری پیاده کنی خیلی بهتره. هم ساده‌تره (نه برای شما به عنوان طراح، برای مدیرسایت) ، هم کاربرپسندتره، هم اینکه احتمال اشتباه توی اون کمتره. یکم کارت زیاد می‌شه ولی نتیجه‌ی کار یه سیستم حرفه‌ایه.
توی طراحی سایت سعی کن تعداد دفعات دسترسی به بانک کمترین تعداد باشه. مثلا برای همین چک‌کردن وجود کلمه‌ی توی بانک، خیلی راحت می‌تونی یه روال ذخیره‌شده (Stored Procedure) بنویسی که اول چک کنه کلمه توی بانک هست یا نه؟ اگه بود برچسب رو به جدول محصولات اضافه کنه. اگه نبود، خود روال برچسب رو به جدول برچسب‌‌ها اضافه کنه و بعد کدبرچسب رو به جدول برچسب‌محصولات اضافه کنه.

marya101000
جمعه 21 تیر 1392, 17:00 عصر
اول اینکه Tag ID رو کلید اولیه جدولت در نظر بگیر و اون رو Identity کن تا خود SQL اونو مقداردهی کنه.
دوم اینکه «بازی کامپیوتر» و «بازی کامپیوتری ارزان» رو دوتا تگ جدا در نظر بگیر نه یکی.

اما برای مشکلت: می‌تونی توی سیستم مدیریتت به جای وارد کردن تگ‌ها به صورت تک به تک اونا رو یه‌جا وارد کنی. یه فیلد (TextBox گزینه‌ی خوبیه) در نظر بگیری که مدیرسایت تگ‌ها رو یک‌جا وارد کنه. فقط باید برچسب‌ها با یه نماد خاص (مثلا ; یا ,) از هم جدا بشن. بعد توی کدنویسی بیای و برچسب‌ها رو از هم جدا کنی (با تابع Split خیلی راحت می‌شه چنین کاری کرد) و برای هر برچسب چک‌ کنی که این برچسب توی بانک اطلاعاتی هست یا نه، اگه بود که کد اون برچسب و کدمحصول به جدول برچسب‌محصولات اضافه بشه. اگه نبود، اول باید اون کلمه به جدول برچسب‌ها اضافه بشه، بعد کدمحصول به جدول برچسب‌محصولات اضافه بشه.
اگه بتونی سیستم فروشگاهت رو این‌جوری پیاده کنی خیلی بهتره. هم ساده‌تره (نه برای شما به عنوان طراح، برای مدیرسایت) ، هم کاربرپسندتره، هم اینکه احتمال اشتباه توی اون کمتره. یکم کارت زیاد می‌شه ولی نتیجه‌ی کار یه سیستم حرفه‌ایه.
توی طراحی سایت سعی کن تعداد دفعات دسترسی به بانک کمترین تعداد باشه. مثلا برای همین چک‌کردن وجود کلمه‌ی توی بانک، خیلی راحت می‌تونی یه روال ذخیره‌شده (Stored Procedure) بنویسی که اول چک کنه کلمه توی بانک هست یا نه؟ اگه بود برچسب رو به جدول محصولات اضافه کنه. اگه نبود، خود روال برچسب رو به جدول برچسب‌‌ها اضافه کنه و بعد کدبرچسب رو به جدول برچسب‌محصولات اضافه کنه.


مرسی ممنون از راهنمایی هاتون