PDA

View Full Version : مفیدترین روش واکشی اطلاعات از چندین جدول



sara_aryanfar
دوشنبه 10 آذر 1399, 18:15 عصر
با سلام دوستان فرض کنید ما می خواهیم یک لیست رو نشون بدیم که اطلاعات اون در جداول مختلفی پراکنده هست مثلا لیست کاربرانمون هست که اطلاعاتی اماریشو باید از جداول دیگه دربیاریم اینکه چه جنسی فروخته چه کالایی داره یا چه پست هایی گذاشته و از این موارد حالا یک راه اینه که ما چند جدول رو جوین کنیم که سرعت رو کم می کنه به نظرم از طرفی اگه اطلاعات ما در 10 تا مثلا جدول باشه جوین این تعداد جدول منطقی نیست به نظرتون بهترین راه چیه ؟به نظر خودم اومده که اطلاعات مورد نیاز رو در درخواست های جدا دریافت کنم و نتیجه نهایی رو مدیریت کنم

plague
سه شنبه 11 آذر 1399, 15:12 عصر
میتونی از تیبل یوزر اول یوزر ها رو با 1 کوئری بخونی
بعد آیدی های یوزر ها رو از کوئری در بیاری تبدیل مثل تو یه آرایه
بعد این آدی ها رو ببری باهاشون 1 کوئری دیگه بزنی همه داده هاشون رو از تیبل دیگت در بیاری
بعد با php یجوری وصلشون کنی به هم

خیل یخلاصه یه چیزی شبیه به این میشه


$sers = select * from users
$user_ids = [] ;
foreach($users as $user )
{
$user_ids[] = $user['id];
}


$stats = select * from stats where user_id in ( implode(',' , $user_ids ) )


$user_stats = [] ;


foreach($stats as $stat )
{

$user_stats[ $stat['usre_id'] ] = $stat ;

}


--- خروجی

foreach($users as $user)
{
echo $user['name'] ;
echo 'stats : '

echo $user_stats[$user['id]];

}

sara_aryanfar
پنج شنبه 20 آذر 1399, 15:55 عصر
میتونی از تیبل یوزر اول یوزر ها رو با 1 کوئری بخونی
بعد آیدی های یوزر ها رو از کوئری در بیاری تبدیل مثل تو یه آرایه
بعد این آدی ها رو ببری باهاشون 1 کوئری دیگه بزنی همه داده هاشون رو از تیبل دیگت در بیاری
بعد با php یجوری وصلشون کنی به هم

خیل یخلاصه یه چیزی شبیه به این میشه


$sers = select * from users
$user_ids = [] ;
foreach($users as $user )
{
$user_ids[] = $user['id];
}


$stats = select * from stats where user_id in ( implode(',' , $user_ids ) )


$user_stats = [] ;


foreach($stats as $stat )
{

$user_stats[ $stat['usre_id'] ] = $stat ;

}


--- خروجی

foreach($users as $user)
{
echo $user['name'] ;
echo 'stats : '

echo $user_stats[$user['id]];

}
پس عملا ما در چنین مواردی مجبوریم از php کمک بگیریم چون من خودم اینکارو می کنم اونم به این خاطر که جوین جداول باعث سنگین شدن کوئری میشه مخصوصا در زمانی که دیتابالا هست