'

Удобная работа с базой данных в PHP.

Понравилась презентация – покажи это...





Слайд 0

Плиско Вячеслав. pliskovs@gmail.com http://amdy.su/ Удобная работа с базой данных в PHP.


Слайд 1

Реляционная база данных Двухмерная таблица Колонки – название полей Строки – уникальные записи Ключи для идентификации и связей между таблицами SQL – стандартный язык запросов, возвращает так же двухмерную таблицу


Слайд 2

Шаблоны проектирования ORM Active Records Data mapper Query Object Domain model


Слайд 3

Шаблоны проектирования ORM ORM (Объектно-реляционная проекция) — запись объектов программы в реляционную базу данных, отображение объекта и его представления в виде набора таблиц.


Слайд 4

Шаблоны проектирования: Active Record Active Record (Активная запись) – Объект, выполняющий роль оболочки для строки таблицы или представления базы данных. Он инкапсулирует доступ к базе данных и добавляет логику домена.


Слайд 5

Шаблоны проектирования: Query Object Query Object (Объект запроса) – интерпретатор структуры объектов в SQL запросы.


Слайд 6

Шаблоны проектирования: Domain Model Domain Model (Модель предметной области) — это объекты в объектно-ориентированных компьютерных программах, выражающие сущности из модели предметной области, относящейся к программе, и реализующие бизнес-логику программы.


Слайд 7

Реализации ORM Hibernate в JAVA Active Record в Ruby on Rails Django ORM в Python Doctrine в PHP


Слайд 8

Doctrine ORM: Структура PDO Doctrine DBAL DQL Doctrine ORM


Слайд 9

Компоненты Manager Connection Table Record Collection Validator Profiler Locking Manager Views


Слайд 10

Описание модели Типы данных: boolean, integer, float, decimal, string, array, object, blob, clob, timestamp, date, enum, gzip Связи: One to One, One to Many, Many to One, Tree Structure, Many to Many, Self Referencing (Nest Relations) Индексы: первичный, уникальный, полнотекстовый Проверки: больше, меньше, равно, e-mail Опции таблицы: тип, кодировка, сравнение


Слайд 11

Описание модели: примеры кода метод setTableDefinition() описание колонок $this->hasColumn(название, тип, размер, массив с параметрами); название таблицы $this->setTableName(название таблицы); ключи $this->index(название, array('fields' => array(поле), 'type' => тип)); опции таблицы: $this->option('charset', 'utf8'); Метод setUp() связb между таблицами $this->has<One|Many>(таблица, array('local' => поле в текущей таблице, 'foreign' => поле в связанной таблице, 'refClass' => таблица для связи * - *));


Слайд 12

DQL Выборка данных, связанные записи Вставка-изменение данных Удаление данных Для чего нужны Accessors и Mutators Слушатели и обработка событий


Слайд 13

DQL: примеры $users = Doctrine::getTable('User')->findAll(); $user = Doctrine::getTable('User')->find (1); echo $user->login, ' ', $user->Groups->Name; $users = Doctrine::getTable('User')->findByGroupsId (1); $users = Doctrine_Query::create()->from('User u')->leftJoin('u. Groups g')->where('g.id = ?', array(1))->fetchArray(); $user = new User(); $user->login = ‘root'; $user['groups_id'] = 1; $user->save(); $user->delete(); $result = Doctrine_Query::create()->delete()->from('User u')->where('u.id = ?', array(1))->addWhere('groups_id = 1') ->execute();


Слайд 14

Шаблоны Для чего это нужно и как работает Geographical I18n NestedSet Searchable Sluggable Softdelete Timestamp Versionalble


Слайд 15

Иерархические структуры Adjacency list (Список смежностей) Nested Set Получение дерева Получение ноды Добавление, удаление, изменение ноды Перенос ноды


Слайд 16

Проблемы Синтаксический анализ запроса Сложность построения оптимизированных запросов Ограничение SQL Связанные таблицы Встроенные процедуры и функции БД


Слайд 17

Решения проблем Профайлинг Оптимизация Кэширование Сложные запросы View Транзакции


Слайд 18

Литература М.Фаулер “Архитектура корпоративных программных приложений” http://www.martinfowler.com/ http://wikipedia.org/ http://www.doctrine-project.org/ http://phpclub.ru/


×

HTML:





Ссылка: