sprit
Новичок
Оптимизация запросов к БД при использовании ООП
Возникла проблема при использовании ООП в PHP.
Существует несколько классов, таких как
Клиент - TCustomer
Счет - TInvoice
Задача: создать сводный отчет по клиентам за период времени с отображением счетов.
Решение:
Таким образом если 100 клиентов по 5 счетов итог 1000!!! запросов к Базе.
Если без применения ООП всего 2 (Выбрать клиентов и счета этих клиентов).
Вопрос: Что необходимо здесь изменить чтобы оптимизировать скрипт с сохранением ООП.
Подскажите пожалуйста, я уже просто не знаю что делать. Нигде это я не нашел.
Если есть какой-нибудь материал по такому случаю подскажите.
Возникла проблема при использовании ООП в PHP.
Существует несколько классов, таких как
Клиент - TCustomer
Счет - TInvoice
PHP:
class TCustomer{
public $ID;
public $Name;
public $Surname;
function __construct($CustomerID){
global $DB;
$this->ID = $CustomerID;
list($this->Name,$this->Surname) = $DB->GetQuery("SELECT Name,Surname FROM Customers Where ID={$this->ID}");
}
function GetInvoices($DateFrom,$DateTo){
global $DB;
$ResArray = Array();
$Res = $DB->Query("SELECT ID FROM Invoices Where CustomerID={$this->ID} AND Date BETWEEN '$DateFrom' AND $DateTO");
while ($Row = $DB->Fetch($Res)){
$ResArray = new TInvoice($Row['ID']);
}
$DB->Free($Res);
}
}
class TInvoice{
public $ID;
public $Cost;
function __construct($InvoiceID){
global $DB;
$this->ID = $InvoiceID;
list($this->Cost) = $DB->GetQuery("Select Cost From Inoices Where ID={$this->ID}")
}
}
Решение:
PHP:
$Res = $DB->Query("Select ID From Customers");
while ($Row = $DB->Fetch($Res)){
$Customer = new TCustomer($Row['ID']);
$CustoemerInvoices = $Customer->GetInvoice
//....
// формирование и вывод информации
}
Если без применения ООП всего 2 (Выбрать клиентов и счета этих клиентов).
Вопрос: Что необходимо здесь изменить чтобы оптимизировать скрипт с сохранением ООП.
Подскажите пожалуйста, я уже просто не знаю что делать. Нигде это я не нашел.
Если есть какой-нибудь материал по такому случаю подскажите.