通过 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 model
或 databbase model
这样的图表?
实体关系模型的一个例子是(来源:***):
我的第一个想法是我需要以下表格来创建图表:
pages
,tt_content
,也许还有be_users
。我的图表需要其他表格吗?
如果表之间没有关系,我不能在实体关系模型中添加实体(关系),对吧?或者有什么好的方法来创建图表吗?
我很抱歉我的愚蠢问题。但我不知道 TYPO3 和数据库的表是如何协同工作的。
我希望有人能给我一些答案或想法。谢谢。
【问题讨论】:
【参考方案1】:正如您所发现的,TYPO3 由很多表组成。这些表有不同的任务。 如果您想显示每个关系,您的图表将变得比给出数据印象更复杂。 [1]
由于 TYPO3 是 CMS,因此最重要的表是构成并包含前端内容的表。
这个标签是pages
和tt_content
,但取决于您安装的扩展,还需要更多的表。
当然还有其他对前端很重要的表,如 sys_file
和 sys_file_references
,它们管理已使用的文件,如图像(FAL = 文件抽象层)。
取决于您使用的功能,使用或忽略其他表:
如果您有前端登录,您可能需要表格 fe_users
和 fe_groups
来控制内容的可见性。
一般情况下,您可以在 TYPO3 的 TCA(表配置数组)中获得更详细的表关系图。在这里您可以找到在 TYPO3 中使用的所有相关字段的声明(独立于数据库中的定义)
有关 TYPO3 的更多信息,请访问https://docs.typo3.org
也许你可以在这里获得更具体的信息:
API:Database Structure TCA[1] 几乎每个表都有一些公共字段,这些字段与表pages
、be_users
、fe_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_foreign
、tablenames
、fieldname
)。
在category
字段中仅存储引用计数。
【讨论】:
以上是关于通过 TYPO3 显示数据库中的关系的主要内容,如果未能解决你的问题,请参考以下文章
TYPO3:通过 URL 中的参数过滤 tx_news 类别
tt_address:更新到 Typo3 6.2 后后端未显示扩展字段