SlideShare a Scribd company logo
1 of 25
Download to read offline
Кастомные таблицы в Drupal 7
Модули Schema, Data, Entity Construction Kit
Антон Шлома
Инженер программист
shloma.a@i20.biz
Группа компаний 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
Модуль Schema
function 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 float
https://www.drupal.org/node/159605
Модуль Data
Интеграция кастомных таблиц
● Управление таблицами
● Интеграция с модулем features
● Интеграция с модулем views
● Relations
● Экспорт схемы
● API
● Хуки
Reported installs: 8,970 sites currently
report using this module.
Downloads: 104,410
Модуль Data
Интеграция кастомных таблиц
Модуль Data
Интеграция кастомных таблиц
Модуль Data
Интеграция кастомных таблиц
Модуль Data
Интеграция кастомных таблиц
Модуль Data
Интеграция кастомных таблиц
Модуль 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
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Модуль Entity Construction Kit
Кастомные entity
Спасибо за внимание
Вопросы?
Антон Шлома
Инженер программист
shloma.a@i20.biz
Группа компаний i20
http://i20.biz

More Related Content

Similar to Anton Shloma. Custom tables

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его примененияMedia Gorod
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.DrupalForumZP2012
 
Логическая витрина данных
Логическая витрина данныхЛогическая витрина данных
Логическая витрина данныхSergey Gorshkov
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateAlexey Zinoviev
 
Devconf2010 mariadb-extra-features
Devconf2010 mariadb-extra-featuresDevconf2010 mariadb-extra-features
Devconf2010 mariadb-extra-featuresSergey Petrunya
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...GoSharp
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битриксAndrii Podanenko
 
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...PVasili
 
Процесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаПроцесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаДмитрий Колодезев
 
SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet
SECON'2017, Блохин Леонид, Колоночные БД на примере ParquetSECON'2017, Блохин Леонид, Колоночные БД на примере Parquet
SECON'2017, Блохин Леонид, Колоночные БД на примере ParquetSECON
 
текла на завтрак
 текла на завтрак текла на завтрак
текла на завтракYury Kulikou
 
Scino: Developing for Windows Phone [part-1]
Scino: Developing for Windows Phone [part-1]Scino: Developing for Windows Phone [part-1]
Scino: Developing for Windows Phone [part-1]SCINO
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQAFest
 

Similar to Anton Shloma. Custom tables (20)

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Drupal и возможности его применения
Drupal и возможности его примененияDrupal и возможности его применения
Drupal и возможности его применения
 
Tekla Structures
Tekla StructuresTekla Structures
Tekla Structures
 
Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.Создаем Drupal дистрибутив: от идеи до сопровождения.
Создаем Drupal дистрибутив: от идеи до сопровождения.
 
Логическая витрина данных
Логическая витрина данныхЛогическая витрина данных
Логическая витрина данных
 
ORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs HibernateORM battle. MyBatis vs Hibernate
ORM battle. MyBatis vs Hibernate
 
Devconf2010 mariadb-extra-features
Devconf2010 mariadb-extra-featuresDevconf2010 mariadb-extra-features
Devconf2010 mariadb-extra-features
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
 
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
 
Процесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщикаПроцесс разработки дата-сервисов или CRISP курильщика
Процесс разработки дата-сервисов или CRISP курильщика
 
пр5 (2часа)b pwin
пр5 (2часа)b pwinпр5 (2часа)b pwin
пр5 (2часа)b pwin
 
SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet
SECON'2017, Блохин Леонид, Колоночные БД на примере ParquetSECON'2017, Блохин Леонид, Колоночные БД на примере Parquet
SECON'2017, Блохин Леонид, Колоночные БД на примере Parquet
 
текла на завтрак
 текла на завтрак текла на завтрак
текла на завтрак
 
Scino: Developing for Windows Phone [part-1]
Scino: Developing for Windows Phone [part-1]Scino: Developing for Windows Phone [part-1]
Scino: Developing for Windows Phone [part-1]
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 

More from i20 Group

Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketi20 Group
 
Журавлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продажЖуравлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продажi20 Group
 
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегментеРогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегментеi20 Group
 
Александр Войнов. Digital охота
Александр Войнов. Digital охотаАлександр Войнов. Digital охота
Александр Войнов. Digital охотаi20 Group
 
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынкеОсипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынкеi20 Group
 
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсииГорина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсииi20 Group
 
Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool? Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool? i20 Group
 
Anton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platformAnton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platformi20 Group
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкцияi20 Group
 
Pavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interfacePavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interfacei20 Group
 
Grigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First stepsGrigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First stepsi20 Group
 
Scrum lego game instructuons
Scrum lego game instructuonsScrum lego game instructuons
Scrum lego game instructuonsi20 Group
 
Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8i20 Group
 
Pavel Prischepa. Wodby
Pavel Prischepa. WodbyPavel Prischepa. Wodby
Pavel Prischepa. Wodbyi20 Group
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributionsi20 Group
 
Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.i20 Group
 
Sergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakesSergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakesi20 Group
 
Olesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicingOlesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicingi20 Group
 
Chingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualizationChingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualizationi20 Group
 
Artem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a codeArtem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a codei20 Group
 

More from i20 Group (20)

Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal market
 
Журавлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продажЖуравлёв Артем. Современные инструменты отдела продаж
Журавлёв Артем. Современные инструменты отдела продаж
 
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегментеРогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
Рогаченко Ксения. Инструменты онлайн маркетинга в b2b сегменте
 
Александр Войнов. Digital охота
Александр Войнов. Digital охотаАлександр Войнов. Digital охота
Александр Войнов. Digital охота
 
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынкеОсипенко Константин. Как привлечь новых клиентов на падающем рынке
Осипенко Константин. Как привлечь новых клиентов на падающем рынке
 
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсииГорина Екатерина. 4 простых правила дизайна для увеличения конверсии
Горина Екатерина. 4 простых правила дизайна для увеличения конверсии
 
Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool? Eugene Ilyin. Why Drupal is cool?
Eugene Ilyin. Why Drupal is cool?
 
Anton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platformAnton Shloma. Drupal as an integration platform
Anton Shloma. Drupal as an integration platform
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкция
 
Pavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interfacePavel Ruban. High loaded PHP operations over web interface
Pavel Ruban. High loaded PHP operations over web interface
 
Grigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First stepsGrigoriy Shlyapkin. Drupal. First steps
Grigoriy Shlyapkin. Drupal. First steps
 
Scrum lego game instructuons
Scrum lego game instructuonsScrum lego game instructuons
Scrum lego game instructuons
 
Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8Mikhail Kraynuk. Form api. Drupal 8
Mikhail Kraynuk. Form api. Drupal 8
 
Pavel Prischepa. Wodby
Pavel Prischepa. WodbyPavel Prischepa. Wodby
Pavel Prischepa. Wodby
 
Sergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal DistributionsSergey Cherebedov. Interesting Drupal Distributions
Sergey Cherebedov. Interesting Drupal Distributions
 
Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.Namzhilma Zhambalova. Ajax pane. lazy pane.
Namzhilma Zhambalova. Ajax pane. lazy pane.
 
Sergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakesSergey Susikov. Virtualzation. My rakes
Sergey Susikov. Virtualzation. My rakes
 
Olesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicingOlesya Prokopenko.FlexBox. Future of the slicing
Olesya Prokopenko.FlexBox. Future of the slicing
 
Chingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualizationChingis Sandanov. Container virtualization
Chingis Sandanov. Container virtualization
 
Artem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a codeArtem Zigar. Development Tools. Readability of a code
Artem Zigar. Development Tools. Readability of a code
 

Anton Shloma. Custom tables