Доброго всем. Сочиняется редактор документации с иерархической структурой нумерации разделов и статей. Формат: Код (Text): А - А.1 -- А.1.1 - A.2 ... B - B.1 ... с неограниченной глубиной вложения. Первый уровень нумерации — буква. Требуется придумать юзерфриндли алгоритм управления разделами и статьями, т.е. автонумерация, и автоматический пересчет внутренних ссылок (типа см. главу/раздел такой-то номер). Чтобы типа внезапно понадобилась новая статья, или раздел разбить на два, или перенести одно под другое, и чтобы все, что ниже, и все, что выше, само подвинулось и пересчиталось. И чтоб в админке это было бы легко и просто. Данные хранятся в реляционной БД, конкретный движок не должен играть роли. Пишу на Codeigniter, используя Active Record, если это имеет значение. Прикручен визуальный редактор Wymeditor. Нагрузка на сервис будет никакая. 0,1 девелопера в месяц. Соображения: в таблице БД должны храниться уникальный id записи, id родителя и порядковый номер среди объектов этого уровня статья это или раздел, никакого принципиального различия быть не должно (получаем гибкую структуру) статья может быть пустой (по сути заголовок раздела), а раздел не иметь потомков (то ли раздел, то ли заготовка будущей статьи) Сомнения: может, не надо sql? Может, json какой-нить удобнее? (знаком на примитивном базовом уровне) таблица может быть одна на всё, или удобнее (кошернее, правильнее) вынести метаданные в отдельную таблицу? или ткните носом в готовые решения, плиз, а то я что-то забарахтался в поиске
Re: Управление иерархической структурой документации (алгори типичная древовидная структура. для хранения деревьев в БД есть много решений. гуглим: -Adjacency List -Materialized paths -Nested Sets и т.д. выбираем то что подходит лучше
Re: Управление иерархической структурой документации (алгори О! Вон оно как называется, чего я наполовину изобрел! Ы Потом впал в сомнения и начал изобретать, что описано в первом посте. Спасибо за ключевые слова! Как обычно, их-то и не хватает чайнику. Тут же нашлась либа Nested Sets для Кодоподжигателя, довольно свежая.