Похоже, мы собираемся перейти с DBIx::Class::Tree::AdjacencyList
на данный момент. Он делает почти все, что я искал (к сожалению, никаких результатов предков - но мы можем обойти это, подойдя к вопросам, которые нам нужно задать с другой стороны).
Тем не менее, ответ @ Grrrr заставил меня задуматься, и мы можем добавить отдельную таблицу + модуль (id, record_type, record_ancestors)
, который будет присоединяться к нашим моделям, имеющим столбец parent_id
и обеспечивающим набор результатов ancestors
(в основном, с помощью search_rs где id находится в разбиении соответствующей строки предков по выбранному нами разделителю w / e). Это довольно трудоемкая работа только для того, чтобы получить такой набор результатов, поэтому мы, вероятно, пойдем туда только в том случае, если найдем вопросы, на которых действительно непрактично задавать вопрос: «Является ли это потомком родителя x» и действительно ли это нужно? ребенок х "?
РЕДАКТИРОВАТЬ: или, может быть, мы будем использовать DBIx::Class::Tree::Mobius
- хотя выглядит, что просмотр таблицы raw будет непонятным.