为什么 TYPO3 Extension Builder 不生成外键?
我已经在模型之间设置了一些关系,但是在 SQL 代码中,没有 FK 仅用于键的值的列。
有人可以帮助我吗?
为什么 TYPO3 Extension Builder 不生成外键?
我已经在模型之间设置了一些关系,但是在 SQL 代码中,没有 FK 仅用于键的值的列。
有人可以帮助我吗?
引用 Kartsen Dambekalns
这是一个半意识的设计决定。只需查看 MySQL 中引入外键约束的日期,并与 TYPO3 的“诞生”时间进行比较。
当然,添加这样的引用会很棒,特别是因为 MySQL 总是可以处理它们,即使底层存储引擎不处理它们(在这种情况下它们将被忽略)。
(来源)
到目前为止没有任何变化,因此您需要在建模后自己创建外键。
回复评论:
你是如何处理两个表之间的关系的?例如,我有一张桌子,它与带有 housenr 列的桌子房子有关
这取决于课程的关系类型(1:n
, n:1
,m:n
等),Builder 完美地支持在建模工具中创建关系。请记住,在 TYPO3 中保持关系不需要外键。
在文档的 TCA 部分中描述了一些规则,即在提到的情况下,您可以使用select
或group (with internal_type)
字段类型。对于多对多关系,您还需要创建 MM 表。如果您遵循这些文档,则可以肯定,在常见的后端编辑表单中,它们将得到正确处理。
如前所述,Extension Builder 支持在其点击建模工具中创建不同类型的关系,值得花一些时间来玩一下,看看 TYPO3 是如何处理不同类型的关系的。它使用的规则与在pre-extbase扩展中创建关系时使用的规则相同。更重要的是,Builder 为模型添加了所需的方法,即给定关系字段的 forgetting
和attaching
MMdetaching
对象,因此在开始时对所有关系进行建模是最重要的。在其他情况下,您需要手动编写这些方法(这是一个无聊的过程)