• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بدست اوردن رتبه کاربر در جدول
#1
با سلام
ما در دیتا بیس مون یه جدول داریم با حدود 200 هزار رکورد که امتیازات کاربرها در یک بازی داخل اون ثبت میشه و دائم آپدیت میشه و در نتیجه جدول نامرتبه از نظر امتیاز کاربرها ،
میخایم رتبه یک کاربر رو از نظر تعداد امتیازی که داره تو این جدول بدست بیاریم چطوری و با چه دستوری باید این کارو انجام بدیم ؟

بنظرتون برا هربار درخواست کاربر یه بار جدول رو سورت کنیم یا بهتره مثلا هر یه ساعت یه بار سورتش کنیم و رتبه کاربر رو داخل اون بدست بیاریم ؟
  پاسخ
تشکر شده توسط :
#2
سلام،
واسه چی ازaggregate functions استفاده نمی کنید
  پاسخ
تشکر شده توسط : mojtaba55
#3
(۱۳۹۹ فروردین ۰۸, ۰۹:۲۸ ب.ظ)باز باران با ترانه نوشته: سلام،
واسه چی ازaggregate functions  استفاده نمی کنید

ممنون دوست عزیز
فک کنم سئوالمو خوب بیان نکردم

ببینین ما تعداد زیادی مثلا همون 200 هزار رکورد از امتیازات کاربران داریم تو بازی مون کاربر میاد در خواست میکنه که رتبه شو ببینه اول امتیازی که بدست آورده رو تو همون جدولی که گفتم آپدیت میکنیم بعد جدول رو بر اساس امتیازات کاربرها سورت میکنیم حالا چطوری بفهمیم رتبه ( اندیس یا ... ) کاربر چنده ؟ یعنی بهمیم کاربر تو کدوم ریدف قرار گرفته ؟
  پاسخ
تشکر شده توسط :
#4
(۱۳۹۹ فروردین ۰۸, ۱۰:۲۰ ب.ظ)mojtaba55 نوشته:
(۱۳۹۹ فروردین ۰۸, ۰۹:۲۸ ب.ظ)باز باران با ترانه نوشته: سلام،
واسه چی ازaggregate functions  استفاده نمی کنید

ممنون دوست عزیز
فک کنم سئوالمو خوب بیان نکردم

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

 فکر کردم کل امتیاز های یه کاربر رو دارید ...
بفرمایید Rank حواستون هم باشه که امتیاز ها ممکنه برابر باشند
Rank2
یا اینکه وقتی داده های جدول تون رو دارید و مرتب هم هستند با یه حلقه هم می تونید، شمارنده تعریف کنید و دونه دونه بره بالا تا اینکه به کاربر مورد نظر برسه و شمارنده برگشت داده بشه که همون رتبه کاربره
  پاسخ
تشکر شده توسط : mojtaba55
#5
(۱۳۹۹ فروردین ۱۰, ۰۸:۲۶ ق.ظ)باز باران با ترانه نوشته:
(۱۳۹۹ فروردین ۰۸, ۱۰:۲۰ ب.ظ)mojtaba55 نوشته:
(۱۳۹۹ فروردین ۰۸, ۰۹:۲۸ ب.ظ)باز باران با ترانه نوشته: سلام،
واسه چی ازaggregate functions  استفاده نمی کنید

ممنون دوست عزیز
فک کنم سئوالمو خوب بیان نکردم

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

 فکر کردم کل امتیاز های یه کاربر رو دارید ...
بفرمایید Rank حواستون هم باشه که امتیاز ها ممکنه برابر باشند
Rank2
یا اینکه وقتی داده های جدول تون رو دارید و مرتب هم هستند با یه حلقه هم می تونید، شمارنده تعریف کنید و دونه دونه بره بالا تا اینکه به کاربر مورد نظر برسه و شمارنده برگشت داده بشه که همون رتبه کاربره

استفاده از حلقه به هیچ وجه کار خوبی برای این کار شما نیست و به شدت میتونه تعداد درخواست ها روی سرور شمارو بالا ببره ، شما فرض کنید  100 تا کاربر بخوان همزمان درخواست نمایش امتیاز بدن که برای هر کاربر میخواد 200 زهرا رکورد چک بشه یعنی ما عملا 200 ضربدر 100 رکورد داریم همزمان چک میکنیم و این یعنی افتضاح در کاربران بیشتر
سوال : شما مگر برای هر کاربر ای دی خاصی ندارید ؟ و رتبه هر کاربر رو با ایدی توی جدول رنک ها قرار نمیدید ؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 2 مهمان