![]() |
|
|
![]()
|
|
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Здравствуйте...есть select
Это примерно что то вроде дерева... Например есть категория MP3, в ней категории Шансон, Рок и Классика... Если параметр :FULLPATH равен 1_2_ это значит что нужно показать все Рок-и. Если 1_ то все что попадает под категорию MP3, т.е. Шансон, Рок, Классику и так далее... SELECT написан но работает медленно, как его можно оптимизировать, или по другому написать...или индексы поставить на таблицу...вобщем все что угодно... СУБД: MySQL IDE: Borland C++Builder 6.0 Enterprise Driver: ODBC через ADO |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Если я не ошибаюсь, то лучше всего будет генерить в зависимости от этого самого fullpath в программе условия, которые вместо (position(...) = 1) будут содержать что-то типа (id=шансон or id=рок or ...). По-моему, так.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Это может быть иерархия типа
CD->MP3->Chanson->Avtorskiy->Xoroshiy->OchenXoroshiy ...и так далее... не думаю что если сгенерировать селект where id='Xoroshiy' or id='OchenXoroshiy' и тому подобное по такой вот иерархии он станет работать быстрее...т.е. работает он нормально, но записей в таблице много (около 25000)...но я попробую, хотя этот вариант мне немного не нравиться, у меня для этого компонент написан. не хочеться привязывать его к общей программе...не универсально...а писать этот сорс генерации на каждой форме где стоит компонент тоже как то не особо интересно...в любом случае спасибо... Будут еще предложения??? |
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Слушай, а что мешает прям в виде дерева и хранить?
Структуру базы придется поменять, но зато точно будет соответствовать описываемой структуре. Атрибуты - key(PK), id и pid (parent id). Словами чет не могу сформулировать, но вот такой запрос, коли я с синтаксисом вложенных селектов не наврал, должен тогда довольно неплохо решить задачу.
и т.д. Мне кажется, можно и еще намного лучше сделать. Но вот базу менять... |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Вложенным селектом я бы эту задачку давно решил, но тут проблема..MySQL не разрешает вложенных селектов...не менять же базу данных? честно говоря я одну ошибку в компоненте нашел, из за нее селект работал раза в 2 медленней, но это уже исправлено...открываеться где то около 2,3 секунд...хотелось бы еще немного...если в MySQL можно сделать вложенные селекты то как??
|
|||
|
||||
| Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: нет Всего: 3 |
Иерархию View'ов создавать, и из последнего выбирать.
То же самое получается. Но эти временные вьюшки могут еще сильнее затормозить, хотя их можно создавать только при первом обращении, или же что-то типа инициализации сделать. Вот только их штук 500 получится... Но вообще, с помощью view удобно эмулировать вложенные селекты. |
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |