Когда не стоит использовать узел Drupal? - PullRequest
5 голосов
/ 17 июня 2010

Я недавно создал очень простую таблицу CRUD, где пользователь хранит некоторые данные.Для данных я создал пользовательский узел.Эта функциональность отлично подходит для создания, редактирования и удаления данных в таблице CRUD с использованием базовых функциональных возможностей узла (на самом деле, я поражена, насколько быстро и легко было программировать базовые функциональные возможности с надлежащими элементами управления доступом, используя лишь небольшой кусочек кода)....

Поскольку данные не должны обрабатываться так же, как «контент», такой как сообщение в блоге (без заголовка, без тела, без комментариев, без изменений, не должны отображатьсяна? q = странице узла, без предварительного просмотра, без тизеров и т. д.) ... Я обнаружил, что большую часть своего времени я трачу на "выключение" и изменение того, что drupal делает автоматически для узлов.

Я знаю, что это дело вкуса, но где нужно провести черту, что следует рассматривать как узел, а что нет?Другими словами, было бы лучше программировать этот материал с нуля без использования узлов?

Ответы [ 2 ]

6 голосов
/ 18 июня 2010

Использование узлов для пользовательских данных имеет ряд дополнительных преимуществ, помимо простой функции редактирования / обновления / удаления:

  • возможная категоризация с помощью таксономии
  • неявное «владение» через отслеживание автора
  • неявное отслеживание времени создания / модификации
  • базовый контроль доступа по умолчанию, расширяемый огромным выбором модулей
  • гибкая генерация запросов / распечатка / фильтрация по представлениям
  • возможные специальные расширения / аннотации через поля CCK
  • возможное определение рабочих процессов, действий и т.п.
  • огромное количество хуков для программного перехвата / настройки почти каждого аспекта / сценария использования
  • комментирование, голосование, оценка и множество других функций, предоставляемых всеми предоставленными модулями, которые работают на / с узлами ...

Учитывая все это, я бы сказал, что вам нужна очень веская причина, чтобы не использовать узлы для хранения данных в Drupal. Узлы - это просто фундаментальные строительные блоки практически для всего в экосистеме Drupal, и накладные расходы на удаление некоторых нежелательных «функций» по умолчанию кажутся довольно небольшими по сравнению с преимуществами.

Тем не менее, одна из возможных причин / аргументов для обработки данных, отдельно от системы узлов, может заключаться в том, что эти данные непосредственно направлены на аннотирование других узлов (представьте таксономию). Но так как вы можете легко ссылаться на узлы из других узлов (с множеством различных вариантов того, как это сделать), аргумент не слишком сильный.

Другим (гораздо более сильным) аргументом будет целостность данных - Drupal не очень силен (мягко говоря) в отношении нормализованного, реляционного хранения данных, ссылочной целостности, обработки транзакций и других смежных тем. . Если у вас есть требования в этом направлении, у вас может не быть иного выбора, кроме как пропустить концепцию узла и самостоятельно создать и поддерживать отдельный островок данных в системе.

3 голосов
/ 17 июня 2010

Помогает также думать, что узел не должен быть публичным. Некоторые узлы являются частными / внутренними и могут контролироваться далее с помощью контроля доступа. То, как вы это делаете, что бы вы ни делали, делает всю масштабируемость и расширяет ее на ваших плечах.

Я бы, вероятно, подошел к нему с помощью CCK / Taxonomy в зависимости от того, что я делал. Таким образом, я получаю дополнительное преимущество интеграции модулей Views / Panels / etc без написания дополнительного кода.

...