В моей программе есть несколько элементов, которые принадлежат к определенной категории. Я хотел бы вернуть только те товары, которые относятся к этой категории. Проблема в том, что категории могут иметь родительские категории. Например, допустим, есть категория «Материал» с дочерней категорией «Еда» с дочерней категорией «Фрукты». У меня есть предметы: яблоко, груша, шоколад и компьютер.
Если я хочу отобразить все плоды, легко выполнить запрос к базе данных с предложением «WHERE item.category = FRUIT_ID». Однако, если я хочу, чтобы все продукты были включены, мне также нужен способ, чтобы фрукты там были.
Я знаю, что в некоторых базах данных, таких как Oracle, есть понятие рекурсивных запросов, и это может быть правильным решением, но у меня нет большого опыта работы с иерархическими данными и я ищу общие предложения. Предположим, у меня есть неограниченный контроль над схемой базы данных, дерево категорий идет максимум максимум на 5 категорий, и мне нужно, чтобы оно было смехотворно быстрым, насколько это возможно.