Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top