PDA

View Full Version : سوال: پیاده سازی tag برای متن



zahrashoja
شنبه 31 فروردین 1392, 18:52 عصر
سلام دوستان
تگ یا کلمات کلیدی منظورمه که مثلن برای متن خبر دو روش در طراحی جداول پایگاه داده ش دیدم:
روش اول:
1- جدول لیست خبر ( شامل کلید اصلی news_id و...)
2- جدول لیست کلمات کلیدی (tag_id, tag_name)
3- جدول واسط بین خبر و کلمات کلیدی که شامل سه تا فیلد است (id,news_id , tag_id)
روش دوم:
در جدول خبر یه فیلد هم برای کلمات کلیدی لحاظ بشه البته باید کلمات توسط , از هم جدا بشن

کدوم روش بهتره؟(از لحاظ کدنویسی و پایگاه داده)
اگه کسی میتونه یا نمونه کدی برای پیاده سازیش داره ممنون میشم کمکم کنه

crazy_1892
شنبه 31 فروردین 1392, 19:27 عصر
بانک های اطلاعاتی مثل وردپرس از روش اول استفاده میکنه
بنده هم روش اول را پیشنهاد میدم

zahrashoja
یک شنبه 01 اردیبهشت 1392, 14:32 عصر
بانک های اطلاعاتی مثل وردپرس از روش اول استفاده میکنه
بنده هم روش اول را پیشنهاد میدم
خب چرا؟
میشه در مورد پیاده سازیش توضیح بدین؟؟؟

tree1371
یک شنبه 01 اردیبهشت 1392, 18:19 عصر
بهترین راه این هست شما یدونه تیبل ایجاد کنید واسه تگ هاتون و یک تیبل هم که که آیدی تگ هاتون و مطلبتون درونش بریزید . مثلا مطلب 1 تگ 10 و 20 و50 رو می گیره.

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

zahrashoja
دوشنبه 02 اردیبهشت 1392, 11:36 صبح
بهترین راه این هست شما یدونه تیبل ایجاد کنید واسه تگ هاتون و یک تیبل هم که که آیدی تگ هاتون و مطلبتون درونش بریزید . مثلا مطلب 1 تگ 10 و 20 و50 رو می گیره.

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

اگه نمونه کدی ازش داشتیم ممنون میشم بزارین

fakhravari
دوشنبه 02 اردیبهشت 1392, 13:52 عصر
CREATE TABLE [dbo].[Tags_GroupsTags](
[ID] [smallint] IDENTITY(1,1) NOT NULL,
[TagName] [nvarchar](50) NULL)
CREATE TABLE [dbo].[Tags_Categories](
[ID] [int] IDENTITY(1,1) NOT NULL,
[GroupsTagsID] [smallint] NOT NULL,
[CategoriesName] [nvarchar](50) NOT NULL)
CREATE TABLE [dbo].[Tags_Communication](
[ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[CategoriesID] [int] NOT NULL,
[TopicID] [numeric](18, 0) NOT NULL)

برای دسته بندی به نظر خودم بهتر جدول موضوع داشته باشیم.
مثلا> پزشکی - ورزشی - اجتماعی و...
بعد جدول تگ ها
مثلا برای ورزشی > فوتبال - استقلال - و...
در نهایت کد این تگ ها را باید در جدول 3 که رابطه ای بین کلید کد مطلب و فوتبال - استقلال - و... باشد

zahrashoja
دوشنبه 02 اردیبهشت 1392, 15:58 عصر
[CSHARP]

برای دسته بندی به نظر خودم بهتر جدول موضوع داشته باشیم.
مثلا> پزشکی - ورزشی - اجتماعی و...
بعد جدول تگ ها
مثلا برای ورزشی > فوتبال - استقلال - و...
در نهایت کد این تگ ها را باید در جدول 3 که رابطه ای بین کلید کد مطلب و فوتبال - استقلال - و... باشد
ممنون ولی منظورم جدول هاش نبود کد بود اینکه یه رشته رو میگیریم اون کلیدواژه ها رو جدا میکنیم میزاریم توی جدول ..البته ضروری نیس خودمم میتونم بنویسم.. فقط با رشته ای که از کاربر میگیرم نمیدونم چطور تگ ها رو ازش جدا کنم ...

tree1371
دوشنبه 02 اردیبهشت 1392, 16:03 عصر
خوب شما باید به کاربرتون بگید کاما بزاره بین تگ هاش بعد شما میاد دستور split رو اجرا می کنید و درون یک آرایه میریزید و بعد تک تک آرایه ها رو ذخیره می کنید . به طور متداول از ( , ) استفاهده میشه واسه جداسازی تگ ها.

zahrashoja
دوشنبه 02 اردیبهشت 1392, 16:14 عصر
خوب شما باید به کاربرتون بگید کاما بزاره بین تگ هاش بعد شما میاد دستور split رو اجرا می کنید و درون یک آرایه میریزید و بعد تک تک آرایه ها رو ذخیره می کنید . به طور متداول از ( , ) استفاهده میشه واسه جداسازی تگ ها.

بنظرتون اشکالی نداره محدوده بزارم برای تعداد تگ ها ؟مثلن فقط 10 تا رو دخیره کنم