Здравствуйте.
В изучении языка делаю первые шаги и для закрепления прочитанного стараюсь теорию совмещать с практикой, потому поставил себе задачу написать что-то вроде простого географического справочника с рядом функций. К сожалению, недостаток знаний порой препятствует реализации какой-либо идеи, а найти решение проблемы в пособиях или вопросах других пользователей удаётся не всегда, что вынуждает озадачить сообщество своим вопросом.
Подскажите, пожалуйста, как лучше решить следующую задачу:
Есть таблица в базе SQLite, содержащая id элементов, их названия и прочие параметры. Пользователь может создать как базовый элемент (первый уровень), так и дочерний. Все записи носят произвольный характер, количество вложений и их наличие определяет сам пользователь. Существует лишь ограничение на максимальный уровень вложенности, а удаление из базы родительского элемента влечёт за собой удаление и всех входящих в него вложений. То есть, формируемое дерево элементов может выглядеть приблизительно так:
- Европа
- - Беларусь
- - - Витебск
- - Россия
- - - Центральный федеральный округ
- - - - Москва
- - - - Московская область
- - - Южный федеральный округ
- - Украина
- Азия
- Африка
Застрял на реализации логики работы с такими элементами. Лучшее, что пока удалось придумать, так это указывать в базе для каждого элемента его уровень, родителя и дочерние элементы, а потом обрабатывать это в нескольких вложенных циклах. Подозреваю, что существует более грамотное решение, позволяющее работать со связанными между собой элементами, но найти его пока не удалось.
Направьте, пожалуйста, в нужное русло. Интересен не столько сам код, сколько принцип решения задачи с указанием на методы и функции, которые могут быть в этом полезны.
Спасибо.
На то оно и начало…