Схема (структура) базы данных

Авторы решений:
Версия Drupal:

Задача

Понять связи между таблицами и колонками базы данных Друпал 5.7

Решение



Варианты

  • Cхема с сайта webdevgeeks.com (сделана программой SchemaSpy 19 января 2007)
  • Схема, предложенная Pilat (постоянно обновляется)

Cхема с сайта webdevgeeks.com

Сайт англоязычный.
Скорее всего использована база данных Drupal 5.x.

Легенда:
Легенда схем базы данных

Cмотреть полную схему базы данных:

Кроме того, на сайте можно посмотреть и проанализировать:
Таблицы
Отношения
Вспомагательные таблицы
Ограничения (Constraints)
Аномалии
Колонки

Схема базы данных, предложенная Pilat

Как я себе представляю структуру Drupal'овской базы:
есть два основных объекта - node и vocabulary (материал и словарь соответственно)

1) все материалы хранятся в nodе - вообще все;

2) все node имеют какой-то тип - те самые типы материалов, и хранятся описания типов в node_type - вот что там сразу после установки:

mysql> select type, name, module from node_type;
+-------+-------+--------+
| type  | name  | module |
+-------+-------+--------+
| page  | Page  | node   |
| story | Story | node   |
+-------+-------+--------+
2 rows in set (0.00 sec)

3) словарь (vocabulary) содержит список терминов, или дерево терминов - в зависимости от типа словаря.

4) термины (term_data) могут быть связаны между собой связью родитель-потомок (term_hierarchy), родитель - более общее описание, потомок - более детальное, или термин-термин (term_relation) для родственных терминов, каждый из которых напрямую может не быть связан с другим.

5) типы материалов (node_type) могут быть связаны с одним или несколькими словарями (а могут и не быть, но это нехорошо);

6) материалы (node) связаны с терминами (не со словарями!).

Затруднения вызывает понимание что такое словарь и термины. Объяснений есть много, я сходу хорошего объяснения придумать не могу.

Использование структуры нод и терминов - очень просто. Создаём материал нужного типа, приписываем ему из присоединённого к типу словаря несколько терминов. После этого выводим на страницу список терминов, - например в виде облака тэгов, - кликаем по нужному тэгу (а он и есть термин словаря) и видим список нод, к которым был приписан этот термин (тэг).

Вот и всё, остальное - это правила доступа, пользователи, кэширование и так далее - надстройки над системой нод и словарей.

Да, comments - это облегчённая в смысле хуков node.

Замечание andypost@drupal.org:
все правильно, кроме - между vocabulary & node_revisions связи нет! (vid в них просто одинаково называется)

Смотреть схемы:

Использованные материалы

Полезные ссылки

Creative Commons: ­Attribution-Share Alike 2.5

Данные материалы выложены под лицензией Creative Commons: ­Attribution-Share Alike 2.5. Это значит, что вы можете распространять, копировать и модифицировать эти произведения при условии упоминания авторства оригинала, и при условии, что они также будут распространяться на условиях этой лицензии (то есть, изменённую работу нельзя защитить копирайтом). Подробнее смотри: http://ru.wikipedia.org/wiki/Creative_Commons