Asar
Новичок
Организация БД
Имеется каталогообразная система. 1 таблица, в ней поля для характеристик, Id элемента, код родителя (его Id в этой же таблице), код уровня.
Пример цепочки: Животные -> Насекомые -> Тараканоподобные -> Тараканообразные -> Таракановые -> Настоящие тараканы -> Таракан -> домашний
Все бы хорошо, но.
Для самого нижнего уровня полным именем является его имя + имя родителя. Т. е. "Таракан домашний", а не "домашний". Соответственно, приходится делать лишний запрос. При этом за раз может быть выборка, к примеру, из 50-100 элементов нижнего уровня -- т. е. 50-100 лишних запросов.
Вопрос: стоит ли заделать лишнее поле, куда автоматом вписывать название родителя для каждого элемента нижнего уровня, чтобы не делать лишних запросов? Т. е. что лучше -- лишнее поле или лишние запросы?
Часто бывает нужно вывести всех родителей в цепочке для данного элемента. Опять лишние запросы к БД.
Вопрос: стоит ли аналогично лепить лишнее поле с готовой цепочкой родителей и выводить эту цепочку напрямую оттуда или все же делать лишние запросы?
Имеется каталогообразная система. 1 таблица, в ней поля для характеристик, Id элемента, код родителя (его Id в этой же таблице), код уровня.
Пример цепочки: Животные -> Насекомые -> Тараканоподобные -> Тараканообразные -> Таракановые -> Настоящие тараканы -> Таракан -> домашний
Все бы хорошо, но.
Для самого нижнего уровня полным именем является его имя + имя родителя. Т. е. "Таракан домашний", а не "домашний". Соответственно, приходится делать лишний запрос. При этом за раз может быть выборка, к примеру, из 50-100 элементов нижнего уровня -- т. е. 50-100 лишних запросов.
Вопрос: стоит ли заделать лишнее поле, куда автоматом вписывать название родителя для каждого элемента нижнего уровня, чтобы не делать лишних запросов? Т. е. что лучше -- лишнее поле или лишние запросы?
Часто бывает нужно вывести всех родителей в цепочке для данного элемента. Опять лишние запросы к БД.
Вопрос: стоит ли аналогично лепить лишнее поле с готовой цепочкой родителей и выводить эту цепочку напрямую оттуда или все же делать лишние запросы?