Я относительно новичок в CakePHP, и я пишу приложение CakePHP, которое в настоящее время имеет модель Author и модель Book. Автор и Книга имеют отношения многие ко многим.
Тем не менее, я хотел бы дополнительно, для каждого отношения автора с книгой, иметь соответствующую ссылку на блог этого автора, где они размышляют над своим опытом написания этой книги.
Если это сбивает с толку, следующие параграфы попытаются прояснить мою ситуацию:
Для каждого автора будет одна статья об их опыте для каждой книги. Если взглянуть на эту взаимосвязь в обратном порядке, это означает, что для каждой книги на каждого автора будет существовать одна соответствующая ссылка (учитывая, что у книг может быть несколько авторов), где этот автор описывает свой опыт написания книги.
Другими словами, для каждой пары (Автор, Книга) я хотел бы иметь возможность хранить связанный URL.
В более причудливых, абстрактных математических терминах, которые я буду использовать ужасно и ненадлежащим образом: у меня есть неориентированный граф, где каждая вершина является Автором или Книгой, и у каждого ребра есть Автор для одной вершины и Книга для другой. Это звучит немного запутанно, но (я думаю) это описывает мою ситуацию настолько точно, насколько я могу это сделать.
Учитывая приведенное выше описание, я хочу знать, могу ли я прикрепить произвольные данные к любому заданному краю этого отношения и получить их позже.
В настоящее время у меня есть третья модель AuthorBook, которая действует как край графа.
Автор имеет много отношений с AuthorBook.
Книга имеет много связей с AuthorBook.
AuthorBook имеет отношение к Author и Book, а также имеет поле url.
Это решение работает, но по какой-то причине тот факт, что Книга не связана напрямую с Автором, беспокоит меня. Есть ли способ добиться такого же эффекта, одновременно вырезая модель AuthorBook из картинки?
(Кроме того, я понимаю, что могу иметь их непосредственное отношение при сохранении AuthorBook, но это выглядит уродливо и также излишне.)
(Кроме того, я понимаю, что у меня все еще была бы таблица SQL author_book. Это не беспокоит меня ни в малейшей степени, я думаю, что в любом случае обойтись невозможно.)
Спасибо за ваше время! И, пожалуйста, не зажигайте меня !!!