Здравствуйте уважаемые постетители форума!
Хотелось бы вновь вернуться к субж.
А именно вот такая проблема:
Имеется некоторая таблица (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)
СНОВА - Сортировка BrowseBox'a
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Я таки не понял, как нужно отсортировать записи?
+Title, +RazdelCode или +RazdelCode, +Title???
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
+Title, +RazdelCode или +RazdelCode, +Title???
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
+RazdelCode, +Title
--
Mfg,
Anton
Добавь Title во вторую таблицу, и CASCADE на UPDATE по Title из первой на вторую. Ну и ключи соответствующие. Тогда у тебя во второй таблице будет ключ +RazdelCode, +Title, который решит проблему со скоростью выборки.
Правда при модификации Title из первой таблицы, возможны тормоза.
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
--
Mfg,
Anton
Добавь Title во вторую таблицу, и CASCADE на UPDATE по Title из первой на вторую. Ну и ключи соответствующие. Тогда у тебя во второй таблице будет ключ +RazdelCode, +Title, который решит проблему со скоростью выборки.
Правда при модификации Title из первой таблицы, возможны тормоза.
OldStav <oldstav@ukrsibbank.com>
Написал: ClaList(2)
Ну, в принципе, тоже вариант.
Я думал о создании некоего индекса по Title - и использование его для второй таблицы. Тогда можно было бы обойтись лишь некоторым индексным полем во второй таблице. Но как это практически реализовать ?
--
Mfg,
Anton
Мне вот что странно. Получается, что несколько RazdelCode с одинаковым наименованием, могут соответствовать нескольким Title?
OldStav
Написал: ClaList(2)
Я думал о создании некоего индекса по Title - и использование его для второй таблицы. Тогда можно было бы обойтись лишь некоторым индексным полем во второй таблице. Но как это практически реализовать ?
--
Mfg,
Anton
Мне вот что странно. Получается, что несколько RazdelCode с одинаковым наименованием, могут соответствовать нескольким Title?
OldStav
Написал: ClaList(2)