Relation module. Артём Бердышев.

  • 975 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
975
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
7
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Relation module Artem Berdishev http://donetsk.drupal.ua
  • 2. RELATION MODULE Artem Berdishev
  • 3. Зачем нужен Relation?
    • Задача: связь сущностей на вашем сайте
    • Изображение используется статьей
    • Отдел включает работников
    • Комментарий имеет родительский комментарий
    • Пользователь знаком с другим пользователем
  • 4. Существующее решение
      • Reference поля
      • Реализация в виде полей для сущностей
      • Часто используется node references
      • Хорошо работает в большинстве сущностей
      • Имеет несколько проблем и ограничений
  • 5. Проблема №1: Reference поля являются направленными
    • Reference поля всегда начинаются с одной сущности и указывают на одну или несколько других
    • Вызывает некоторые проблемы, как например, при использовании взаимосвязей во Views
    • Одна сущность должны быть исходной даже при симметрической связи ( например, соседство)
    • Решение : Использование доп. модули и/или создание “connection nodes”
  • 6. Проблема №2: Reference поля - атомарны
    • Нет возможности указать дополнительную информацию об отношении
    • Когда и кем создана
    • Нет истории изменений
    • Нет возможности добавить поля
    • Решение : создание “connection nodes”
  • 7. Проблема № 3 : У Reference полей отношение «одно-ко-многим»
    • Нет возможности указать более одной исходной точки для каждого отношения.
    • Не покрывает частных случаев отношений
    • Снова: позволяет создавать только направленные отношения
    • Решение : создание “connection nodes”
  • 8. Решение №1: Использование “connection nodes”
    • Типы материалов, служащие только связями между сущностями
    • Ноды тяжелы для загрузки и сохранения
    • Требуются хаки и авто-создание
    • Различная реализация для различных сайтов
    • Все же требует дополнительных модулей для обратных связей
  • 9. Решение №2: Использование дополнительных модулей
    • Работает, но имеет недостаток различной архитектуры для каждого сайта
    • Reverse Node Reference ( views reverse relationship)
    • Back Reference (nodeapi interface for 1-1 relationships)
    • Node Referrer
    • Corresponding node references
    • Partners
  • 10. RELATION
  • 11. Введение в модуль Relation
      • Отдельная сущность вместо “connection nodes”
      • Может иметь поля
      • Может объединять любой тип entity bundles – даже их комбинации
      • Может объединять любое количество сущностей
      • Может быть направленной или симметричной
      • Интегрируется со стандартными модулями
      • Легче чем ноды
  • 12. Анатомия relation -сущностей
      • Массив конечных узлов ( end points)
      • Первая сущность – источник (при направленной связи)
      • Конфигурируется для каждого bundle – типы связей
      • Нет заголовка, списков
      • Нет возможности редактирования конечных узлов !!!
  • 13. В первую очередь – API
      • Другие модули должны реализовывать Relation
      • Некоторый UI для добавления и просмотра отношений
      • Реализована интеграция с Views и Rules
  • 14. Недостатки
      • Больше времени на установку reference полей
      • Немного тяжелее чем reference fields ( один дополнительный JOIN)
      • Необходимо, чтобы все конечные узлы были созданы
      • Пока не очень хороший UI
  • 15. Будущее Relation
      • Возможно заменит reference fields для сложных случаев
      • Возможно не заменит reference fields в простых случаях
      • Возможно предоставит стандартную модель отношений даже для ядра Drupal
  • 16. Resources
    • Страница проекта: http ://drupal.org/project/relation
    • Модуль Relation select: http://drupal.org/project/relation_select
    • Серия видео-уроков про Relation: http :// nodeone.se/node/970
  • 17. THANKS! QUESTIONS? Artem Berdishev email: [email_address] skype: berdishev