anton shloma. custom tables
TRANSCRIPT
Кастомные таблицы в Drupal 7Модули Schema, Data, Entity Construction Kit
Антон ШломаИнженер программист[email protected] Группа компаний i20
Почему используют?Кастомные таблицы в Drupal 7
● Не нравится node● Не нравится taxonomy term● Вообще раздражает слово
bundle и entity● Я пишу на нативном PHP,
мне вообще не нужен Drupal
● Задумался о производительности
Зачем нужно использовать?Кастомные таблицы в Drupal 7
● Нужны быстрые запросы● Нужно временное хранилище данных● Денормализация данных● Специфичный функционал
Разные задачи - разные подходы в решении
НедостаткиКастомные таблицы в Drupal 7
● Возможно уже есть специальное решение для вашей задачи.
● Трудно дорабатывать, потеря данных.● Нет интеграции с другими модулями.● Больше времени на разработку● Проблема с переносом на другие
инстансы● Бесхозные таблицы захламляют БД.
Как создавать?Кастомные таблицы в Drupal 7
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options] [partition_options]
Как создавать?Кастомные таблицы в Drupal 7
Модуль Schemafunction hook_schema() { $schema['node'] = array( 'description' => 'The base table for nodes.', 'fields' => array( 'nid' => array( 'description' => 'The primary identifier for a node.', 'type' => 'serial', 'unsigned' => TRUE, 'not null' => TRUE, ), ...
...'primary key' => array('nid'), ); return $schema;}
Типы данныхDrupal 7 Schema API
type size MySQL type & size/range PostgreSQL type & size/range SQLite type
serial tiny tinyint, 1 B serial, 4 B integer
serial small smallint, 2 B serial, 4 B integer
serial medium mediumint, 3 B serial, 4 B integer
serial big bigint, 8 B bigserial, 8 B integer
serial normal int, 4 B serial, 4 B integer
int tiny tinyint, 1 B smallint, 2 B integer
int small smallint, 2 B smallint, 2 B integer
int medium mediumint, 3 B int, 4 B integer
int big bigint, 8 B bigint, 8 B integer
int normal int, 4 B int, 4 B integer
float tiny float, 4 B real, 6 digits floathttps://www.drupal.org/node/159605
Модуль DataИнтеграция кастомных таблиц
● Управление таблицами● Интеграция с модулем features● Интеграция с модулем views● Relations● Экспорт схемы● API● Хуки
Reported installs: 8,970 sites currently report using this module.Downloads: 104,410
Модуль Entity Construction KitКастомные entity
● Управление properties● Управление fields● Редактирование, добавление● Интеграция с views● View моды● Интеграция с features● Многое другое
Reported installs: 9,756 sites currently report using this module. View usage statistics.Downloads: 136,785
Спасибо за вниманиеВопросы?
Антон ШломаИнженер программист[email protected] Группа компаний i20http://i20.biz