Записи с меткой ‘orm’
Соответствие MySQL и MongoDB запросов
Эта шпоргалка создана для того чтобы упростить переход с SQL баз данных на MongoDB. В ней остались не затронутыми многие особенности и возможности MongoDB, неимеющие аналогов в SQL, такие как MapReduce, например. Или те о которых я незнаю. Это просто список соответствий MySQL запросов и запросов MongoDb.
Два способа ‘eager loading’ в ActiveRecord
Начиная с Rails версии 2.1 в ActiveRecord существует два способа нетерпеливой загрузки (’eager loading’). Первый использует один запрос в котором связывает таблицы оператором JOIN. Второй использует по одному запросу на каждую модель. В Rails версии до 2.1 использовался только первый способ, в версиях начиная с 2.1 используются оба, но второй используется по умолчанию.
Первый способ, обладает некоторыми проблеммами. Он считается медленным, из-за необходимости обрабатывать большое количество избыточных данных (пример 1), особенно при большой вложенности ассоциаций для загрузки, и используется только если в запросе необходимо использовать поля ассоциаций (например в параметре :conditions)
Проверка данных моделей ActiveRecord и функции обратного вызова. Первая часть.
Перевод Active Record Validations and Callbacks
Это руководство описывает цикл жизни объектов Active Record. Вы узнаете, как проверить состояние объектов прежде, чем они попадут в базу данных, и как выполнить собственный код в определенных моментах цикла жизни объекта.
Прочтя это руководство, Вы сможете:
- цикл жизни объектов Active Record
- Использовать встроенные помощники для проверки состояния данных модели
- Создавать свои собственные помощники для проверки состояния данных модели
- Работать с сообщениями об ошибках, которые генерируются в результате этих проверок
- Создавать функции обратного вызова, вызываемые на разные события происходящие в течении жизни объекта
- Создавать специальные классы, которые будут энкапсулировать общее поведение для функций обратного вызова
Создавать классы-наблюдатели, которые будут отвечать за вызов соответствующих методов в ответ на события происходящие в течении жизни объекта
Интерфейс запросов ActiveRecord
Перевод: Active Record Query Interface
Это руководство описывает различные способы получать данные от базы данных, используя ActiveRecord. Прочтя это руководство, Вы сможете:
- Искать записи в базе данных с помощью множества методов и всевозможных условий
- Определять сортировку, требуемые атрибуты, группировку и другие свойства для поиска записей
- Использовать отложенную загрузку, чтобы сократить количество запросов к базе данных, необходимых для поиска
- Использовать динамические методы поиска
- Создавать именованные области видимости (named_scope), для добавления новых средств поиска Ваших моделей
- Проверять существование определенных записей
Выполнять различные расчеты в моделях ActiveRecord
DoctrinePHP. Руководство пользователя. Глава 2 Управление соединениями.
2.1 DSN, Описание Источника Данных
2.2 Открытие нового соединения
Открытие нового соединения с базы данных в Доктрине очень легко. Если Вы желаете использовать PDO (www.php.net/PDO), Вам нужно только инициализировать новый объект PDO:
Листинг. 36
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
$conn = Doctrine_Manager::connection($dbh);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
Заметьте, что непосредственная передача объекта PDO в Doctrine_Manager::connection() не позволяет Доктрине узнать имя пользователя и пароль к базе, так как нет никакой возможности получить их от PDO. Однако, имя пользователя и пароль требуется Доктрине для того чтобы иметь возможность создавать и удалять базы данных. Для этого Вы должны вручную установить имя пользователя и пароль непосредственно используя объект $conn.

(15 голосов, средний: 4.73 из 5)
(6 голосов, средний: 4.00 из 5)