Схема базы данных 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, если вам нужно больше информации.