• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Relation module
 

Relation module

on

  • 712 views

Presentation about Relation (http://drupal.org/project/relation) module on DrupalCamp Donetsk 2011 (http://donetsk.drupal.ua)

Presentation about Relation (http://drupal.org/project/relation) module on DrupalCamp Donetsk 2011 (http://donetsk.drupal.ua)

Statistics

Views

Total Views
712
Views on SlideShare
709
Embed Views
3

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Relation module Relation module Presentation Transcript

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