Drupal как (мощная) реляционная база данных

8

Я хотел бы создать Drupalsite, предоставляющий платформу для людей по всему миру, которые работают над одной и той же исследовательской темой, чтобы сотрудничать и общаться. (Я уверен, что Drupal является отличным выбором).

Тем не менее, этот сайт должен также включать реляционную базу данных (которая будет очень интересным инструментом исследования для посетителей сайта). Тестовая версия этой базы данных уже существует в базе ooo: в ней 50 таблиц, между которыми существует множество отношений «многие ко многим» и «один ко многим». Очень в основном это записывает отношения между людьми, событиями и организациями.

Я знаю, что можно создать реляционную базу данных в drupal, создав пользовательские типы контента и используя модуль связывания сущностей. Однако, глядя на то, как Drupal хранит эти данные в своей базе данных mysql, я боюсь, что такой способ создания базы данных не очень полезен для меня, так как кажется очень сложным запрашивать данные (или использовать [social сеть] анализ программного обеспечения на них). Возможность легко запрашивать данные имеет решающее значение для моей базы данных.

Я знаю , что можно добавить вторую базу данных на Друпал сайте (см http://drupal.org/node/18429 ). Однако я не уверен, что это решение моей проблемы.

Очень коротко, я хотел бы знать:

(1) Возможно ли изменить способ, которым Drupal сохраняет данные некоторых типов контента в своей базе данных mysql, на способ, который кажется более «естественным» для анализа данных (и возможности легко запрашивать их)

(2) Возможно ли добавить вторую базу данных mysqld на сайт drupal, который организует данные некоторых типов контента нестандартным (более «естественным») способом. Если возможно, пользователи сайта drupal должны иметь возможность добавлять контент и анализировать эти данные, как если бы они были сохранены в одной базе данных.

Я был бы очень благодарен, если бы кто-то мог мне помочь!

hansb
источник

Ответы:

3

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

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

Узлы API Hooks - D6 имеет схожие функции, просто названные по-разному. В этом процессе много точек зацепки. Вы даже можете изменять формы и добавлять свои собственные функции отправки.

Уэйн Вейбел
источник
2

Если вы хотите иметь свой собственный рабочий процесс для сохранения типов контента и его полей в базе данных, вы можете взглянуть на API Field Storage . Он используется для выполнения всего «доступа к базе данных».

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

Также обратите внимание на статью « Удаленные сущности в Drupal 7 », в которой описано, как можно сохранить всю сущность (то есть тип контента) в другом месте, чем БД Drupal по умолчанию.

Евгений Фиделин
источник
1

Недавно я запустил песочницу для интеграции с Drupal <=> Neo4J.

http://drupal.org/sandbox/Letharion/1861580

Это все еще на очень ранних стадиях, но Neo4j звучит так, как будто это был бы способ, позволяющий вам делать намного лучшие запросы. Однако идея состоит не в том, чтобы изменить способ хранения данных в Drupal, а в том, чтобы дублировать связи между контентом.

Letharion
источник