Отображение связи в базе данных с помощью TYPO3

#database #typo3 #relational-database

#База данных #typo3 #реляционная база данных

Вопрос:

Я хочу знать, какая связь существует между таблицами в базе данных (phpMyAdmin), чтобы создать модель отношений сущностей, но я не вижу никакой связи где-либо еще в моей базе данных.

Я использую TYPO3 версии 10.4.21 с расширением: pizpalue и sitepackage builder.

Я создал пользовательский элемент содержимого в своем расширении sitepackage builder, и я хочу знать, какие таблицы моей базы данных имеют какое-то отношение. Все мои переменные для моего элемента содержимого находятся в таблице « tt_content «.

Если я зайду в свой phpMyAdmin и открою «Конструктор», то я увижу много таблиц, но никакой связи: введите описание изображения здесь

Похоже, что каждая таблица имеет только первичный ключ, но не вторичный ключ (внешний ключ).

У меня есть несколько вопросов по моей проблеме.

  1. Существует ли связь между таблицами вообще? Другими словами, все ли таблицы независимы?
  2. Какие таблицы я должен использовать для создания диаграммы типа 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 хранится только количество ссылок.