#database #typo3 #relational-database
#База данных #typo3 #реляционная база данных
Вопрос:
Я хочу знать, какая связь существует между таблицами в базе данных (phpMyAdmin), чтобы создать модель отношений сущностей, но я не вижу никакой связи где-либо еще в моей базе данных.
Я использую TYPO3 версии 10.4.21 с расширением: pizpalue и sitepackage builder.
Я создал пользовательский элемент содержимого в своем расширении sitepackage builder, и я хочу знать, какие таблицы моей базы данных имеют какое-то отношение. Все мои переменные для моего элемента содержимого находятся в таблице « tt_content
«.
Если я зайду в свой phpMyAdmin и открою «Конструктор», то я увижу много таблиц, но никакой связи:
Похоже, что каждая таблица имеет только первичный ключ, но не вторичный ключ (внешний ключ).
У меня есть несколько вопросов по моей проблеме.
- Существует ли связь между таблицами вообще? Другими словами, все ли таблицы независимы?
- Какие таблицы я должен использовать для создания диаграммы типа
entity relationship model
илиdatabbase model
?
Примером модели взаимосвязи сущностей является (Источник: Википедия):
Моя первая идея заключается в том, что мне нужны следующие таблицы для создания диаграммы: pages
, tt_content
, возможно, также be_users
. Нужны ли мне другие таблицы для моей диаграммы?
Если между таблицами нет связи, я не могу добавить объект (отношение) в модель отношений сущностей, верно? Или есть какой-нибудь хороший способ создать диаграмму?
Прошу прощения за мой глупый вопрос. Но я понятия не имею, как TYPO3 и таблицы базы данных работают вместе.
Я надеюсь, что кто-нибудь может дать мне какой-нибудь ответ или идеи. Спасибо.
Ответ №1:
Как вы обнаружили, TYPO3 состоит из множества таблиц. У этих таблиц разные задачи.
Если вы хотите показать каждое отношение, ваша диаграмма станет более сложной, чем для отображения данных. [1]
Поскольку TYPO3 является CMS, наиболее важными таблицами являются таблицы, которые структурируют и содержат содержимое интерфейса.
Это вкладки pages
и tt_content
, но в зависимости от установленных вами расширений необходимы дополнительные таблицы.
Конечно, есть и другие таблицы, важные для интерфейса as sys_file
и sys_file_references
которые управляют используемыми файлами, такими как изображения (FAL = уровень абстракции файлов).
В зависимости от используемой вами функциональности другие таблицы используются или игнорируются:
если у вас есть вход во внешний интерфейс, вам, вероятно, нужны таблицы fe_users
, fe_groups
которые могут контролировать видимость содержимого.
В общем, вы можете получить более подробную картину отношений таблиц в TCA (массив конфигурации таблиц) TYPO3. Здесь вы можете найти объявление всех соответствующих полей в том виде, в каком они используются в TYPO3 (независимо от определения в базе данных)
Более подробную информацию о TYPO3 можно найти по адресу https://docs.typo3.org
возможно, вы можете получить более конкретную информацию здесь:
[1] почти каждая таблица имеет несколько общих полей, которые строят отношения к таблицам pages
, be_users
, fe_groups
которые используются для структурирования данных в back_and и управления видимостью в front_end.
Каждая запись имеет поле
uid
(уникальный идентификатор) для идентификации записиpid
(идентификатор страницы, иногда также называемый родительским идентификатором): отношение кpages
: где хранится запись (все данные хранятся в дереве «страниц», построенном из записей в таблицеpages
. так какpages
-записи хранятся внутриpages
-записей, создается дерево (например, папки на жестком диске)crdate
(временная метка создания)tstamp
(временная метка последнего изменения)cruser_id
(создание идентификатора пользователя) отношение кbe_users
deleted
(удаленные записи не отображаются в серверной части)hidden
(виден в бэкэнде, но скрыт во внешнем интерфейсе)starttime
(временная метка при запуске интерфейса)endtime
(временная метка, когда заканчивается видимость интерфейса)fe_groups
управляет видимостью интерфейса в зависимости от зарегистрированного пользователя интерфейса.sorting
порядок записей
Обработка языка:
sys_language_uid
язык записи (отношение кsys_language
)I18n_parent
(Родительский элемент интернационализации) переведенной записи (отношение к той же таблице)l10n_source
(localization_source) источник перевода (отношение к той же таблице)
Управление версиями:
t3ver_oid
(Исходный идентификатор версии TYPO3) (отношение к той же таблице)t3ver_...
информация о версиях
Категория:
category
(отношение кsys_category
)
это последнее поле является хорошим примером косвенной связи, поскольку оно использует промежуточную таблицу sys_category_record_mm
для реального отношения. Там у вас есть поля для uid sys_category
записи ( uid_local
) и поля для uid
и имени таблицы и поля ( uid_foreign
, tablenames
, fieldname
) ссылающихся таблиц / полей.
В поле category
хранится только количество ссылок.