Страница 1 из 1

Добавлено: 17 Июнь 2004, 10:27
Гость
Здравствуйте уважаемые постетители форума!

Хотелось бы вновь вернуться к субж.

А именно вот такая проблема:

Имеется некоторая таблица (Primary) содержащая скажем два поля:
Code - шифр
Title - строковая
Пусть для обоих полей имеются соотвествующие ключи. Причем по Code - Primary, автонумерация, уникальное.

С ней в связи 1 ко многим состит другая таблица:
Code - шифр из первой.
RazdelCode - некоторый шифр раздела.

Задача: Вывести записи первой таблицы в BrowseBox'е отсортированному по Title в соотвествии с определенным значением RazdelCode из второй таблицы.

Каким образом данную задачу можно решить оптимальным образом ?

Пробовал два варианта, но скорость не устраивает в обоих случаях:
1) По ключу для RazdelCode в таблице 2 перебираются все записи, соотвествующие выбранному значению. По связи из таблицы 1 берутся значения Title.
После этого использовал ORDER по полю Title. Быстро работает для малого кол-ва записей. При большом кол-ве (>1000) значительная задержка.
2) Перебираются все записи таблицы 1, по связи с таблицей 2 через FILTER для RazdelCode отбираются нужные записи.
Здесь, наоборот, когда много записей - то все работает быстро.
Однако, если в таблице 1 записей много, а в выбранном разделе записией мало, то задержка, существенная ( нужно быстрее).

Какие еще могут быть варианты ?

--
Mfg,
Anton mailto:ustim@web.de
Написал: ClaList(2)

Добавлено: 17 Июнь 2004, 13:49
Гость
Я таки не понял, как нужно отсортировать записи?
+Title, +RazdelCode или +RazdelCode, +Title???

OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)

Добавлено: 18 Июнь 2004, 12:31
Гость
+RazdelCode, +Title

--
Mfg,
Anton

Добавь Title во вторую таблицу, и CASCADE на UPDATE по Title из первой на вторую. Ну и ключи соответствующие. Тогда у тебя во второй таблице будет ключ +RazdelCode, +Title, который решит проблему со скоростью выборки.
Правда при модификации Title из первой таблицы, возможны тормоза.

OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)

Добавлено: 22 Июнь 2004, 10:44
Гость
Ну, в принципе, тоже вариант.
Я думал о создании некоего индекса по Title - и использование его для второй таблицы. Тогда можно было бы обойтись лишь некоторым индексным полем во второй таблице. Но как это практически реализовать ?

--
Mfg,
Anton

Мне вот что странно. Получается, что несколько RazdelCode с одинаковым наименованием, могут соответствовать нескольким Title?

OldStav
Написал: ClaList(2)