Задавайте вопросы, мы ответим
Вы не зашли.
Добрый вечер господа! Прошу прощения, если такая тема уже была, но найти я ее не смог. Посему мой вопрос будет из двух частей.
Вопрос № 1
Как предпочтительнее хранить древообразную структуру, с учетом того, что степень вложенности может все время меняться... Ну понятно вариант № 1 в разных таблицах. Но в случае изменения структуры, придется добавлять и или удалять таблицы... неудобно, а можно вот так:
ID NAME IDродителя
1 автомобили null
2 грузовики 1
3 книги null
4 пиво null
5 среднетоннажные 2
6 темное 4
7 безалкогольное 4
В общем смысл понятен...... если idродителя 0, то это корень.............
любые изменения структуры будут происходить за счет модификации строк а не таблиц......
Так вот вопрос.... КАК ЛУЧШЕ и ПРАВИЛЬНЕЕ С ТОЧКИ ЗРЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ?
Вопрос №2
Как сделать выборку из такой таблицы при помощи хранимой процедуры? Смысл таков... ввожу в процедуру ID напрмиер 5 и получаю: Автомобили/грузовики/среднетоннажные....
Процедуру то я написал, но етсь проблема....... результат возвращается не в одной результирующей таблице, а в нескольких т.е. ввожу в процедуру ID=5 и получаю табл.1 - в ней строка автомобили, табл.2- строка грузовики, табл.3 строка среднетоннажные. Это происходит потому, что при каждой итерации цикла внутри процедуры, она возвращает отдельный селект с одним параметром.
Сделал еще вариант, но он мне не нравится...... это загонять все результаты в одну переменную типа TEXT и ставить ее в OUT..... Конечно, если просто надо вывести текст, то это идеальный вариант т.к. нет необходимости особо обрабатываеть его в PHP....... но...... я хочу, чтобы к каждому результату был привязан ID..... а на уровне PHP разбирать строки и вычленять из них нужные ID неохота.....
В голову пришел вариант и мне б очень хотелось узнать, что об этом думают знающие люди!!
Что если при запуске, процедура создавала бы временную таблицу, в которую вставляла бы полученные результаты. И под конец одним SELECT * FROM TEMP TABLE возвращала бы результат в удобоваримом для PHP стандартном виде.
или....... если временные таблицы (например MEMORY) это плохо для производительности, то как тогда в PHP обработать многотабличный результат? Или есть еще какие- то варианты?
Неактивен
Отдельные таблицы следует делать тогда, когда элементы могут содержать
различную информацию (т.е. про автомобили следует знать, какого типа
у него коробка передач и какая мощность, а про книги — кто автор и
сколько у нее страниц). Если же этим не задаваться, то такая простая таб-
личка, разумеется, очень хороша.
Проблем с использованием временных таблиц не вижу.
Неактивен