CakePHPの自己参照ManyToManyコンベンション
-
05-07-2019 - |
質問
既存のデータモデルを使用して、 CakePHPの規則。ノードに任意の数の子ノードと任意の数の親ノードを持たせることができるタイプのグラフノードがあります(一方向の関係)。
CakePHPの規則に従うノードの表は次のとおりです。
Table: nodes
Column: node_id (INT)
Column: description (TEXT)
私の質問は、結合テーブルがどのように見えるかです。現在は次のようになっています。
Table: nodes_nodes
Column: parent_node_id (INT)
Column: child_node_id (INT)
そして、ドキュメンテーションがそれが意味するものは:
Table: nodes_nodes
Column: node_id (INT)
Column: node_id (INT)
2つの列名が同じであることに注意してください。これは明らかに機能しません。これらの2つの列は何と呼ばれますか?または、CakePHPの規則は、設定なしではこの状況を処理できませんか?
解決
neilcrookesが指摘したように、CakePHPでこれを行うことに関するこれに関するいくつかの記事がWeb上にあります。 ここはその1つです。ユーザーHABTMユーザー(友人)を例として使用します。
そのリンクされた記事では、モデルのページ付けを行わない場合は、Userクラス定義の後のすべてを無視できます。
他のヒント
ノードに子ノードがある場合、それらの子ノードは自動的に最初のノードを親として持っていますか?
この関係は、ソーシャルネットワークの一般的な「友人」という概念を象徴する、ユーザーとユーザーの関係に似ている場合があります。ユーザー/友人のデータモデルにグーグルを使用して、それが役立つかどうかを確認することをお勧めします。
所属していません StackOverflow