TYPO3 Extension Builder が外部キーを生成しないのはなぜですか?
モデル間にいくつかの関係を設定しましたが、SQL コードには、キーの値の列のみの FK はありません。
誰でも私を助けることができますか?
TYPO3 Extension Builder が外部キーを生成しないのはなぜですか?
モデル間にいくつかの関係を設定しましたが、SQL コードには、キーの値の列のみの FK はありません。
誰でも私を助けることができますか?
Kartsen Dambekalns からの引用
半ば意識した設計判断です。MySQL で外部キー制約が導入された日付を調べて、TYPO3 が「生まれた」時期と比較してください。
もちろん、そのような参照を追加することは素晴らしいことです。特に、基礎となるストレージ エンジンがそれらを処理しない場合でも、MySQL は常に themm を処理できるためです (その場合、それらは単に無視されます)。
(ソース)
今までと何も変わっていないので、モデリング後に自分で外部キーを作成する必要があります。
コメントへの回答:
2 つのテーブル間の関係をどのように処理しましたか? たとえば、列 housenr を持つテーブル house に関連するテーブル people があります。
それはもちろんリレーション タイプ ( 1:n
、n:1
、m:n
など) に依存し、Builder はモデリング ツールでのリレーションの作成を完全にサポートします。TYPO3 でリレーションを保持するために外部キーは必要ないことに注意してください。
ドキュメントの TCA セクションで説明されているルールがいくつかありselect
ますgroup (with internal_type)
。多対多の関係でも、MM テーブルを作成する必要があります。これらのドキュメントに従えば、一般的なバックエンド編集フォームで適切に処理されることを確信できます。
前に述べたように、Extension Builder はクリック-クリックモデリング ツールでさまざまなタイプのリレーションの作成をサポートしており、さまざまなタイプのリレーションが TYPO3 でどのように処理されるかを確認するために少し時間をかけて試してみる価値があります。これは、 extbase拡張前の関係の作成に使用されるのと同じ規則を使用します。さらに、ビルダーは必要なメソッドをモデルに追加します。つまり、指定された関係フィールドのgetting
、attaching
およびdetaching
MM オブジェクトです。したがって、開始時にすべての関係をモデル化することが最も重要です。それ以外の場合は、これらのメソッドを手動で記述する必要があります (これは退屈なプロセスです)。