Самостоятельная конвенция 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 для моделей данных пользователя / друга, чтобы увидеть, если это помогает.