Самостоятельная конвенция ManyToMany в CakePHP - PullRequest
1 голос
/ 26 ноября 2009

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

3 голосов
/ 27 ноября 2009

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

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

1 голос
/ 27 ноября 2009

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

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

...