Самостоятельная конвенция ManyToMany в CakePHP
-
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)
Обратите внимание, что имена двух столбцов совпадают, что, очевидно, не сработает. Как называть эти две колонки? Или соглашения CakePHP не могут справиться с этой ситуацией без настройки?
Решение
Как отметил neilcrookes, в Интернете есть несколько статей на эту тему о том, как делать это в CakePHP. Здесь - один из них, на примере пользователя HABTM (друзья).
В этой связанной статье вы можете игнорировать все после определения класса User, если не собираетесь разбивать на страницы на модели.
Другие советы
Если у узла есть дочерние узлы, автоматически ли у этих дочерних узлов первый узел становится родительским? Р>
Эти отношения могут быть похожи на отношения пользователей с пользователями, где отношения символизируют общее понятие «друг» в социальных сетях. Предположим, у вас есть Google для моделей данных пользователя / друга, чтобы посмотреть, поможет ли это.