Схема базы данных Symfony CMF

Я начал изучать Symfony CMF, и я должен сказать, что это выглядит хорошо! Однако я не могу разобраться со схемой базы данных! Я ознакомился с основами PHPCR и до некоторой степени понимаю его. Все, что меня смущает, это все дополнительные таблицы, которые устанавливает Symfony CMF. IE

  • phpcr_binarydata
  • phpcr_internal_index_types
  • phpcr_namespaces
  • phpcr_nodes
  • phpcr_nodes_references
  • phpcr_nodes_weakreferences
  • phpcr_type_childs
  • phpcr_type_nodes
  • phpcr_type_props
  • phpcr_workspaces

Для чего все это используется? Единственная таблица, которую я могу понять, это phpcr_nodes и данные XML / свойства сохранены! В некоторых таблицах есть данные, которые запрашиваются, но я не вижу ссылок на них в phpcr_nodes!

Например:

Таблица "phpcr_type_nodes" содержит такие данные, как

имя: phpcr: управляемый супертип: nt:base

Таблица "phpcr_type_props" содержит такие данные, как

имя: авторское право

1 ответ

Решение

Когда вы видите эту схему, это означает, что вы используете Jackalope Doctrine DBAL, которая является одной из возможных реализаций PHPCR API. Это реализует PHPCR поверх реляционной базы данных. К сожалению, документации не так много, но все эти таблицы используются.

Если вы хотите узнать больше о PHPCR, я рекомендую взглянуть на этот учебник PHPCR. Если вы действительно хотите понять схему базы данных в деталях, вам нужно будет изучить исходный код Hackalope Doctrine DBAL.

Обратите внимание, что вы также можете использовать доктрину ORM с CMF. RoutingBundle уже предлагает сопоставление для него, для других пакетов было бы выполнимо реализовать сопоставления ORM, и мы будем рады за вклады.

PS: я так и не понял, как получать уведомления после первоначального уведомления о стеке потока, поэтому лучше всего открыть вопрос в соответствующем репозитории github, если вам нужно больше информации.

Другие вопросы по тегам