通过 TYPO3 显示数据库中的关系

Posted

技术标签:

【中文标题】通过 TYPO3 显示数据库中的关系【英文标题】:Display a Relation in Database by TYPO3 【发布时间】:2022-01-12 15:34:13 【问题描述】:

我想知道数据库 (phpMyAdmin) 中的表之间存在哪些关系来创建实体关系模型,但我在数据库中的其他任何地方都看不到任何关系。

我使用 TYPO3 版本。 10.4.21 扩展:pizpalue 和 sitepackage builder。

我在我的站点包构建器扩展中创建了一个自定义内容元素,我想知道我的数据库的哪些表有某种关系。我的内容元素的所有变量都在表“tt_content”中。

如果我去我的 phpMyAdmin 并打开“设计器”,那么我可以看到很多表,但没有关系:

看起来每个表都只有一个主键,但没有辅助键(外键)。

我有一些关于我的问题的问题。

    表之间是否存在关系?换句话说,所有表都是独立的吗? 我应该使用哪些表来创建像 entity relationship modeldatabbase model 这样的图表?

实体关系模型的一个例子是(来源:***):

我的第一个想法是我需要以下表格来创建图表: pagestt_content,也许还有be_users。我的图表需要其他表格吗?

如果表之间没有关系,我不能在实体关系模型中添加实体(关系),对吧?或者有什么好的方法来创建图表吗?

我很抱歉我的愚蠢问题。但我不知道 TYPO3 和数据库的表是如何协同工作的。

我希望有人能给我一些答案或想法。谢谢。

【问题讨论】:

【参考方案1】:

正如您所发现的,TYPO3 由很多表组成。这些表有不同的任务。 如果您想显示每个关系,您的图表将变得比给出数据印象更复杂。 [1]

由于 TYPO3 是 CMS,因此最重要的表是构成并包含前端内容的表。 这个标签是pagestt_content,但取决于您安装的扩展,还需要更多的表。

当然还有其他对前端很重要的表,如 sys_filesys_file_references,它们管理已使用的文件,如图像(FAL = 文件抽象层)。

取决于您使用的功能,使用或忽略其他表: 如果您有前端登录,您可能需要表格 fe_usersfe_groups 来控制内容的可见性。

一般情况下,您可以在 TYPO3 的 TCA(表配置数组)中获得更详细的表关系图。在这里您可以找到在 TYPO3 中使用的所有相关字段的声明(独立于数据库中的定义)

有关 TYPO3 的更多信息,请访问https://docs.typo3.org

也许你可以在这里获得更具体的信息:

API:Database Structure TCA

[1] 几乎每个表都有一些公共字段,这些字段与表pagesbe_usersfe_groups 建立关系,这些字段用于在后端构建数据并控制前端的可见性。 每条记录都有字段

uid(唯一 ID)来识别记录 pid(页面 ID,有时也称为父 ID):与 pages 的关系:记录存储在哪里(所有数据都存储在从表 pages 中的记录构建的“页面”树中。所以pages-records 存储在pages-records 中,因此会构建一棵树(就像硬盘上的文件夹一样) crdate(创建时间戳tstamp(上次更改的时间戳) cruser_id(创建用户 ID)与 be_users 的关系 deleted(删除的记录在后台不可见) hidden(后端可见,前端隐藏) starttime(前端可见性开始时的时间戳) endtime(前端可见性结束时的时间戳) fe_groups 根据登录的前端用户控制前端的可见性。 sorting 记录顺序

语言处理:

sys_language_uid 记录语言(与 sys_language 相关) I18n_parent(国际化父)翻译记录(与同一张表的关系) l10n_source (localization_source) 翻译来源(与同一张表的关系)

版本控制:

t3ver_oid(TYPO3 版本控制原始 ID)(与同一张表相关) t3ver_... 版本信息

类别:

category(与sys_category相关)

最后一个字段是间接关系的一个很好的例子,因为它使用中间表sys_category_record_mm 来表示实际关系。那里有 sys_category 记录 (uid_local) 的 uid 和 uid 的字段以及引用表/字段的表和字段的名称 (uid_foreigntablenamesfieldname)。 在category 字段中仅存储引用计数。

【讨论】:

以上是关于通过 TYPO3 显示数据库中的关系的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3:通过 URL 中的参数过滤 tx_news 类别

tt_address:更新到 Typo3 6.2 后后端未显示扩展字段

TYPO3 版本中同一张表上的双向 n:m 关系。 4.7.2

Typo3:通量和显示条件

如何将当前页面标题自动插入到 TYPO3 模板中?

如何将 TYPO3 页面模板中定义的通量表单字段存储在数据库列中而不是弹性字段中?