PDA

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



arashmanteghi
29-08-2011, 20:10
سلام دوستان.
ببخشید که این تاپیگ رو اینجا مطرح میکنم،آخه تو بخش پایگاه داده مطرح کردم و انگار خیلی خلوت بود، هیچکس جواب نداد. امیدوارم شما کمکم کنید.
من دارم سعی میکنم یه میکروبلاگ شبیه توییتر درست کنم.
برای اینکه در صفحه home هرکاربر توییت های اشخاصی که توی لیست دنبال شونده های اون کاربر هستند رو نمایش بده احتیاج به یه کوئری دارم و ازتون کمک میخوام.
ساختار database رو واستون توضیح میدم:
ما یه table داریم به نام members که فیلد های مهمش id , username , password هست .
یه table به نام follow که سه فیلد مهم داره id, follower, befollow که follower حاوی id کاربر دنبال کننده هست و befollow حاوی id کاربری که دنبال میشود. (مثلا کاربر 1، کاربر 3 را دنبال میکند).
خب حالا یه table به نام twitt داریم که دارای فیلد های id, twitter, content هست. فیلد توییتر حاوی id شخصی هست که توییت میکنه و content هم حاوی متن توییت هست.
هرکاربر میتونه n نفر رو دنبال کنه و هر کدوم از دنبال شونده ها میتونند m تا توییت گذاشته باشند. میتونید کمکم کنید؟ خواهش میکنم.
چه کوئری بنویسم برای اینکه در صفحه home هرکاربر توییت های اشخاصی که توی لیست دنبال شونده های اون کاربر هستند رو نمایش بده؟

neopersia
29-08-2011, 22:43
سلام

آیدی افرادی رو که دنبال میشن و دنبال میکنند چطوری در فیلدهای مربوطه ذخیره میکنید؟ منظورم اینه که همه افرادی رو که یک کاربر دنبال میکنه در یک رکورد ذخیره میکنید؟

arashmanteghi
30-08-2011, 09:23
سلام

آیدی افرادی رو که دنبال میشن و دنبال میکنند چطوری در فیلدهای مربوطه ذخیره میکنید؟ منظورم اینه که همه افرادی رو که یک کاربر دنبال میکنه در یک رکورد ذخیره میکنید؟

نه، مثلا من 4 نفر رو دنبال میکنم، پس توی جدول follow ، چهار تا رکورد دارم که فیلد follower با id من پر شده و فیلد befollow با id اون 4هار نفر دیگه (هر id توی یک رکورد). متوجه منظورم شدید؟

یه کد میزارم که به نظرم درسته اما بار زیادی روی SQL ایجاد میکنه و فکر کنم باید با cross join استفاده کنم. ولی من چیزی درباره join نمیدونم. اگر شما میدونید من رو راهنمایی میکنید در این مورد؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

neopersia
30-08-2011, 15:25
اینو تست کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید