Undr

На память

Записи с меткой ‘orm’

Соответствие MySQL и MongoDB запросов

with 8 comments

1 Star2 Stars3 Stars4 Stars5 Stars (15 голосов, средний: 4.73 из 5)
Loading ... Loading ...

Эта шпоргалка создана для того чтобы упростить переход с SQL баз данных на MongoDB. В ней остались не затронутыми многие особенности и возможности MongoDB, неимеющие аналогов в SQL, такие как MapReduce, например. Или те о которых я незнаю. Это просто список соответствий MySQL запросов и запросов MongoDb.

Читать далее »

Написал undr ()

27 января 2010 в 11:20

Два способа ‘eager loading’ в ActiveRecord

without comments

1 Star2 Stars3 Stars4 Stars5 Stars (1 голосов, средний: 5.00 из 5)
Loading ... Loading ...

Начиная с Rails версии 2.1 в ActiveRecord существует два способа нетерпеливой загрузки (’eager loading’). Первый использует один запрос в котором связывает таблицы оператором JOIN. Второй использует по одному запросу на каждую модель. В Rails версии до 2.1 использовался только первый способ, в версиях начиная с 2.1 используются оба, но второй используется по умолчанию.

Первый способ, обладает некоторыми проблеммами. Он считается медленным, из-за необходимости обрабатывать большое количество избыточных данных (пример 1), особенно при большой вложенности ассоциаций для загрузки, и используется только если в запросе необходимо использовать поля ассоциаций (например в параметре :conditions)

Читать далее »

Написал undr ()

26 декабря 2009 в 19:00

Размещено в Программирование

Метки: , , , ,

Проверка данных моделей ActiveRecord и функции обратного вызова. Первая часть.

with one comment

1 Star2 Stars3 Stars4 Stars5 Stars (6 голосов, средний: 4.00 из 5)
Loading ... Loading ...

Перевод Active Record Validations and Callbacks

Это руководство описывает цикл жизни объектов Active Record. Вы узнаете, как проверить состояние объектов прежде, чем они попадут в базу данных, и как выполнить собственный код в определенных моментах цикла жизни объекта.

Прочтя это руководство, Вы сможете:

  • цикл жизни объектов Active Record
  • Использовать встроенные помощники для проверки состояния данных модели
  • Создавать свои собственные помощники для проверки состояния данных модели
  • Работать с сообщениями об ошибках, которые генерируются в результате этих проверок
  • Создавать функции обратного вызова, вызываемые на разные события происходящие в течении жизни объекта
  • Создавать специальные классы, которые будут энкапсулировать общее поведение для функций обратного вызова
  • Создавать классы-наблюдатели, которые будут отвечать за вызов соответствующих методов в ответ на события происходящие в течении жизни объекта

    Читать далее »

Написал undr ()

11 ноября 2009 в 17:42

Интерфейс запросов ActiveRecord

with 3 comments

1 Star2 Stars3 Stars4 Stars5 Stars (2 голосов, средний: 5.00 из 5)
Loading ... Loading ...

Перевод: Active Record Query Interface

Это руководство описывает различные способы получать данные от базы данных, используя ActiveRecord. Прочтя это руководство, Вы сможете:

  • Искать записи в базе данных с помощью множества методов и всевозможных условий
  • Определять сортировку, требуемые атрибуты, группировку и другие свойства для поиска записей
  • Использовать отложенную загрузку, чтобы сократить количество запросов к базе данных, необходимых для поиска
  • Использовать динамические методы поиска
  • Создавать именованные области видимости (named_scope), для добавления новых средств поиска Ваших моделей
  • Проверять существование определенных записей
  • Выполнять различные расчеты в моделях ActiveRecord

    Читать далее »

Написал undr ()

22 сентября 2009 в 23:29

Размещено в Документация

Метки: , , , ,

DoctrinePHP. Руководство пользователя. Глава 2 Управление соединениями.

without comments

1 Star2 Stars3 Stars4 Stars5 Stars (Еще не оценили)
Loading ... Loading ...

2.1 DSN, Описание Источника Данных

2.2 Открытие нового соединения

Открытие нового соединения с базы данных в Доктрине очень легко. Если Вы желаете использовать PDO (www.php.net/PDO), Вам нужно только инициализировать новый объект PDO:

Листинг. 36
<?php
    $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.

Читать далее »

Написал undr ()

3 сентября 2009 в 18:24