Самостоятельная конвенция ManyToMany в CakePHP

У меня есть существующая модель данных, в которой я могу свободно переименовывать вещи в соответствии с соглашениями 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)

Обратите внимание, что имена двух столбцов совпадают, что, очевидно, не сработает. Как называть эти две колонки? Или соглашения CakePHP не могут справиться с этой ситуацией без настройки?

2 ответа

Решение

Как отметил neilcrookes, в Интернете есть несколько статей на эту тему о том, как это сделать в CakePHP. Вот один из них, используя пользователя HABTM User (друзей) в качестве примера.

В этой связанной статье вы можете игнорировать все после определения класса User, если не собираетесь разбивать страницы на модели.

Если у узла есть дочерние узлы, будут ли эти дочерние узлы автоматически иметь первый узел как родительский?

Эти отношения могут быть похожи на отношения пользователей к пользователям, где отношения символизируют общее понятие "друг" в социальных сетях. Предположим, у вас есть Google для моделей данных пользователя / друга, чтобы увидеть, если это помогает.

Другие вопросы по тегам