![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Зачем это деление на таблицы?! Я бы однозначно засунул всё в одну. добавил столбец с длиной слова + индекс по нему. И тогда в запросе можно было бы укзывать: select * from ttt where длина_слова between МинимальнаяДлина и МаксимальнаяДЛина p.s. я знаю, что практически в любой СУБД есть функция, возвращающая длину слова (LEN, LENGTH() и т.д.). Но введение дополнительного (избыточного) поля позволит увеличить во много раз скорость запросов по длине слова... |
|
![]() |
![]() |
![]() |
#12 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Хм, можно и в одну... Но вот на счет запроса... Я не очень дружу с SQL, поэтому делаю так:
Код:
Это плохо? |
![]() |
![]() |
![]() |
#13 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
прежде всего, хочу сказать, что когда я писал свой предыдущий пост (#11), я не обновил страничку и не увидел пост Stilet. Поэтому моё сообщение в некотором мысле повторило мысль Виталия...
Цитата:
т.е. Вы делаете не очень хорошо. Но, если не трогать данные, то работать будет. Но я бы переделал! чтобы можно было безболезнено добавлять.удалять слова! |
|
![]() |
![]() |
![]() |
#14 | |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Понятно. Но поскольку программа работает с лексическим минимумом английского языка, не думаю, что нужно удалять/добавлять слова...
И все же Серж, куда я должна буду написать запрос на выборку одной-единственной записи и как с ней работать в дальнейшем? ![]() Цитата:
Последний раз редактировалось Риндера; 11.11.2010 в 12:04. |
|
![]() |
![]() |
![]() |
#15 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
![]() Просто получишь таблицу с одной записью - всего-то. Цитата:
Что такое индексы и как они работают знаешь?
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#16 |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]() |
![]() |
![]() |
![]() |
#17 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Риндера
Виталий всё правильно объяснил. Индексы не надо указывать принудительно (по крайней мере во всех современных СУБД). Пусть есть таблица Бугага. в ней есть числовое поле Длина. И пусть записей в этой базе миллион. Так вот, делаем запрос select * from Бугага where Длина = 100 Если индекса по Длина нет, то ядро СУБД будет перебирать ВСЕ записи (весь миллион) по одной и проверять, равно поле Длина 100 или нет. ну и отбирать нужные записи. А при наличии этих самых индексов,если есть индекс по полю Длина перебор будет идти только по индексу. Т.е. грубо говоря. программа сразу "узнает", если ли записи с величиной 100. если есть - то сразу получит ключ этой записи (т.е. сразу получит эту запись) и дальше будет получать все записи с Длиной равной 100 - не обращаясь к основной таблице с данными, только беря данные из индекса, где все номера записей есть и уже отсортированы по этому полю. Это,конечно, очень упрощённое, схематичное и условное объяснение. (на самом деле это всё намного сложнее, да и в разных СУБД по разному. В сущности этим (в том числе) и занимаются команды разработчиков СУБД - использовать эффективные средства отбора данных. Но позаботится об индексах должен именно разработчик структуры БД - ибо ему решать, по какому полю ему надо быстро и эффективно получать данные, а какие - информационные и в запросах участвовать не будут (ну, или если будут, то скорость запроса не так важна). Это "азбука" разработки БД... Цитата:
![]() А как Вы раньше его вызывали?! нужно через компонент (например, ADOQuery) получить набор данных запросом например, Код:
кстати, что такое Индекс можете почитать тут - Википедия: Индекс (базы данных) и ещё одна статья на Википедия Последний раз редактировалось Serge_Bliznykov; 11.11.2010 в 15:07. |
|
![]() |
![]() |
![]() |
#18 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Ну и стартуя отсюда изучать Базы Данных до перепосинения. Можно так же почитать Тома Кайта, он хоть и пишет про Оракл но оч. серьезно.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#19 | |
Delphi, учу С
Форумчанин
Регистрация: 20.10.2010
Сообщений: 178
|
![]()
Спасиба... Х_Х
Цитата:
Последний раз редактировалось Риндера; 11.11.2010 в 15:39. |
|
![]() |
![]() |
![]() |
#20 | |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]() Цитата:
если повезет, он вообще может никогда не закончиться =) создай несколько таблиц по уровню сложности. делается элементарно, в любом компиляторе... пишешь прогу, пять минут и 200000 слов рассортированы по длинне. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оптимизация алгоритма выделения слов | furstenberg | Общие вопросы Delphi | 12 | 02.02.2010 07:44 |
Разработка алгоритма сортировки методом простых вставок Delphi | Hetsil | Помощь студентам | 0 | 12.12.2009 21:51 |
доработка алгоритма... | Sota | Помощь студентам | 2 | 13.06.2008 15:45 |
Изменения алгоритма | delphi_beginner | Общие вопросы Delphi | 2 | 13.05.2007 21:27 |