ORM в Kohana очень удобная штука, но она постоянно выполняет запросы типа:
SHOW FULL COLUMNS FROM `users`
Запрос выполняется почти на каждое действие связанное с таблицей, в данном случае 'users'. Это происходит из-за того, что для выполнения различных операций с данными ORM необходимо знать структуру таблицы и наименование полей.
Что бы избавиться от таких запросов необходимо добавить модель описание структуры таблицы - массив $_table_columns. Думаю детально описывать стурктуру массива с данными не имеет смысла, так как в ниже приведённом примере всё хорошо понятно.
Например для модели User, расширим стандартную модель Model_Auth_User добавив описание столбцов таблицы:
<?php defined('SYSPATH') OR die('No direct script access.'); class Model_User extends Model_Auth_User { protected $_table_columns = array( 'id' => array( 'data_type' => 'int', 'is_nullable' => FALSE ), 'email' => array( 'data_type' => 'string', 'is_nullable' => FALSE ), 'username' => array( 'data_type' => 'string', 'is_nullable' => FALSE ), 'password' => array( 'data_type' => 'string', 'is_nullable' => FALSE ), 'logins' => array( 'data_type' => 'int', 'is_nullable' => TRUE ), 'last_login' => array( 'data_type' => 'int', 'is_nullable' => TRUE )); }
Больше запросов SHOW FULL COLUMNS FROM `users` не будет, так как модель 'знает' поля таблицы и их свойства.
Комментариев нет:
Отправить комментарий