نمایش نتایج 1 تا 3 از 3

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

  1. #1
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

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

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

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

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

    میتونی از تیبل یوزر اول یوزر ها رو با 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]];

    }

  3. #3
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

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

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    میتونی از تیبل یوزر اول یوزر ها رو با 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 کمک بگیریم چون من خودم اینکارو می کنم اونم به این خاطر که جوین جداول باعث سنگین شدن کوئری میشه مخصوصا در زمانی که دیتابالا هست

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •