View Full Version : سوال: بهترین طراحی دیتابیس برای سیستم لایک گذاری
payamka
شنبه 05 مهر 1393, 10:32 صبح
سلام
فرض کنید یک سیستم مثل فیسبوک داریم که کاربرا پستهاشو لایک کنن. یک جدول داریم برای اینکه کی کدوم پست رو تو چه تاریخی لایک کرد و یک جدول هم برای نگهداری اطلاعات پستها. حالا به نظر شما بهتره تعداد لایک ها رو هم توی جدول پست ها برای هرپست ثبت کنیم، یعنی با هر لایک یک واحد به اون فیلد از رکورد مربوطه اضافه بشه یا همون جدول لایک ها کافیه تا تعداد لایک هارو از اون استخراج کنیم؟
payamka
یک شنبه 06 مهر 1393, 11:31 صبح
کسی نظری نداره؟
حمید رضا رحیمیان
یک شنبه 06 مهر 1393, 12:09 عصر
سلام
به نظر بهتر یه جدول برای لایک ها داشته باشی که ایدی یوزر بگیره ایدی پست و تارخ و ساعت و غیره هم داشته باشه. البته یکم افزونگی ایجاد میشه ولی چاره ی نیست.
payamka
یک شنبه 06 مهر 1393, 17:43 عصر
ممنون از شما
وجود این جدول اجتناب ناپذیره
به نظر شما لازمه توی جدول پست ها هم یه فیلد داشته باشیم که تعداد لایکهای پست رو توش ذخیره کنیم؟
حمید رضا رحیمیان
دوشنبه 07 مهر 1393, 01:15 صبح
سلام
نه چه نیازی به این کار دارید؟ میخواهید حجم دیتابیستونا بالا ببرید؟
برای گرفتن تعداد لایک ها میتونید با یه select ساده بررسی کنید که مثلا پست x چند بار در این جدول تکرار شده. برای این کار هم میتونید از count استفاده کنید.
مثلا: من جدولتون این طور فرض کردم:
جدول user یوزر : UserID int AUTO_INCREMENT NOT NULL,,,, username,,,,,, pass ,,,,, adress and ETC
جدول post پست: PostID int AUTO_INCREMENT NOT NULL,,,,,userId int NOT NULL Foregin Key to user.userid,,,,, Post_txt char(256) NOT NULL
جدول like لایک ها: userID Foregin Key to user.UserID,PostID Foregin Key to post.PostID
مثلا برای گرفتن تعداد لایک میتونید این طور عمل کنید:
SELECT COUNT(userID) AS NumberOfLike
FROM like
WHERE UserID="10"
میتونید این طور تعداد لایک ها را بگیرید البته سعی کنید بیشتر روی دیتابیستون کار کنید چون قرار پست بزارید و تعداد بالا میره حتما اشتباهات کوچک هم برطرف کردنش در آینده هزینه زیادی دارد!!!
امیدوارم کمکی کرده باشم. موفق باشید
payamka
دوشنبه 07 مهر 1393, 09:32 صبح
خیلی ممنون از شما
نظر خودمم همین بود و الان هم همین سیستم رو طراحی کردم، فقط فکر کردم شاید Sum یا Count پردازش زیادی رو مصرف کنن
2undercover
دوشنبه 07 مهر 1393, 14:06 عصر
خیلی ممنون از شما
نظر خودمم همین بود و الان هم همین سیستم رو طراحی کردم، فقط فکر کردم شاید Sum یا Count پردازش زیادی رو مصرف کنن
بله درست فکر کردید اگر تعداد لایک ها بالا بره مطمئنا شمارش اون ها فشار بیشتری نسبت به حالت Counter که شما گفتید به سرور وارد می کنه.
payamka
دوشنبه 07 مهر 1393, 20:36 عصر
بله درست فکر کردید اگر تعداد لایک ها بالا بره مطمئنا شمارش اون ها فشار بیشتری نسبت به حالت Counter که شما گفتید به سرور وارد می کنه.
خب پس چیکار کنم؟
هردوشونو داشته باشم؟
2undercover
سه شنبه 08 مهر 1393, 14:53 عصر
بله می تونید برای این که شمار تعداد لایک رو داشته باشید از همون چیزی که خودتون گفتید استفاده کنید ولی برای اطلاعات جرئی مثل این که کی چه چیزیو لایک کرده می تونید از همون جدول دوم استفاده کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.