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