Home > Software engineering >  searching in large tables in laravel
searching in large tables in laravel

Time:07-28

I have some items from a table and I want to search for each item's id in other 4 tables (that currently have around 5k-6k rows but will be larger in the future).

$items = ItemStock::all();

        foreach($items as $item) {
            $checklist = ChecklistItem::find($item->id);
            if($checklist == null) {
                $r_checklist = ReturningChecklistItem::find($item->id);
                if($r_checklist == null) {
                    $transfer = TransferItem::find($item->id);    
                    if($transfer == null) {
                        $consumption = ConsumptionItem::find($item->id);     
                    }
                }
            } 
        }

I have to search through all tables (as above) and if I don't find the item in one of the tables, I keep searching in the others. But this will not be efficient if the tables will be larger in the future.

Is there a way that can be more efficient? Also, these items will be shown in one of the pages, so I should include a loading spinner until the all the items will load (after checking in the code above). Is this a good approach?

CodePudding user response:

I suggest read Eloquent Relationships

Then for query optimization Eager Loading

And the other form is use Inner or Left Joins For the related data to Item

  • Related