Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97

Как организовать хранение и вывод элементов таблицы с иерархией?

01.03.2021, 23:34. Показов 3787. Ответов 24

Студворк — интернет-сервис помощи студентам
Делаю интернет магазин на java Spring.
Как организовать в базе данных хранение элементов справочника с иерархией, чтоб можно было потом вывести данные примерно, как на фото ниже?
Планируется 3 уровня вложенности.
Миниатюры
Как организовать хранение и вывод элементов таблицы с иерархией?  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2021, 23:34
Ответы с готовыми решениями:

Как организовать хранение изменений в ячейки таблицы Access?
Есть форма, в которой оператор вносит некие значения, из выборки он выбирает один из городов представленных в списке. Его выбор фиксируется...

Как организовать вывод данных из таблицы?
Есть таблица привязанная с access, как сделать вывод информации, что бы выводил список всей информации только мальчиков или только девочек....

Организовать ввод, хранение в массиве, вывод на экран следующих данных
Организовать ввод, хранение в массиве, вывод на экран следующих данных: Информация о движении поездов включающая номер поезда, пункт...

24
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97
16.03.2021, 14:15  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от xoraxax Посмотреть сообщение
ну ты хранишь в бд подкатегории, достаешь их оттуда, складываешь в java-классы. Как ты этим будешь пользоваться, я полагаю, тебе должно быть виднее?
Подскажите пож-та как в БД хранить подкатегории, class называется Category и получается, что он в себе должен хранить List<Category> т.е. список себя же, как это правильно организовать в базе, какие таблицы и связи делать?


Java
1
2
3
4
5
6
7
8
public class Category {
    private List<Category> children;
    private Integer id;
    private Integer parentId;
    private String categoryName;
 
    // гетеры сеттеры и т.п.
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.03.2021, 14:33
Все вместе хранится. Иерархия задана с помощью parentId
0
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97
16.03.2021, 15:21  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
Все вместе хранится. Иерархия задана с помощью parentId
Не понимаю, объясните как для совсем чайника

Поле "private List<Category> children;" в базе данных должно где-то быть или нет?
Или оно должно просто в памяти заполняться на основании поля "parentId"?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.03.2021, 15:33
1) нет 2) да
0
1 / 1 / 0
Регистрация: 10.08.2014
Сообщений: 97
16.03.2021, 15:57  [ТС]
Цитата Сообщение от xoraxax Посмотреть сообщение
1) нет 2) да
Спасибо!


И наверное последний вопрос по данной теме.
После того как я заполнил всё дерево, как мне его вывести?
Как я понимаю нужно отобрать категории первого уровня (те у который "parentId" = null)
И потом по ним пройтись рекурсией чтоб вывести всех "children" и всех "children" у "children"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2021, 15:57

Организовать ввод, хранение в массиве, вывод на экран данных о студентах
Организовать ввод, хранение в массиве, вывод на экран данных о студентах: фамилия. имя, отчество, дата рождения(число, месяц, год),...

Организовать ввод, хранение в массиве, вывод на экран данных о студентах группы
Организовать ввод, хранение в массиве, вывод на экран данных о студентах группы: фамилия, имя, дата рождения , знак Зодиака. Вывести на...

Организовать ввод, хранение в массиве, вывод на экран данных о студентах группы
В задаче организовать ввод и вывод через процедуру. Организовать ввод с клавиатуры только одного элемента массива. Остальные элементы в...

Организовать ввод, хранение в массиве, вывод на экран данных о клиентах пункта проката ДВД-дисков
Организовать ввод, хранение в массиве, вывод на экран данных о клиентах пункта проката ДВД-дисков: фамилия, имя, отчество, адрес (улица,...

Организовать ввод, хранение в массиве, вывод на экран данных об учениках нескольких школ: фамилия, имя, отчество, адрес
Организовать ввод, хранение в массиве, вывод на экран данных об учениках нескольких школ: фамилия, имя, отчество, адрес (улица, дом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru