powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Двойная сортировка
4 сообщений из 4, страница 1 из 1
Двойная сортировка
    #38938299
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу импорт данных из одной базки в другую.
Обе на Firebird.

Данные иерархические но представления отличаются.
В исходной базе иерархия решена через материализованные пути.
В принимающей явно, через PARENT_ID.

Кроме того, существуют 2 сортировки внутри веток, которые нужно сохранить.
В исходной базе каждая из сортировок - сквозной набор из 4 полей.
В принимающей - по полю на каждую сортировку (для каждого родителя непрерывно с 1 до child_num).

Для одной сортировки всё довольно просто: выдёргиваются данные в нужной сортировке, родитель и порядковый номер сохраняем на стеке.
Т. е. дерево на клиенте в памяти восстанавливать не нужно.

А вот как быть с 2мя сортировками, что-то в голову не приходит...
Может кто что подскажет?

П. С.
Сервер 2.5.2
Исходная табличка:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE REPNSYMPK
(
  UNIQNUMS integer NOT NULL,
  NG integer, -- Поля для сортировки
  NS integer, -- Поля для сортировки
  NSD integer, -- Поля для сортировки
  NSA integer, -- Поля для сортировки
  NSAD integer, -- Поля для сортировки
  NU smallint, -- Номер уровня
  NAMR varchar(150), -- Название
  NAMENG varchar(100), -- Путь в иерархии
  -- Ещё много полей не относящихся к делу
  CONSTRAINT PK_REPNSYMPK PRIMARY KEY (UNIQNUMS)
);

Первая сортировка: NG, NSA, NSAD
Вторая NG, NS, NSD

Табличка приёмник:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE SYMPTOMS
(
  ID integer NOT NULL,
  TITLE varchar(150), -- Название
  PARENT_ID integer, -- ID родителя или NULL
  ORD_NUM integer NOT NULL, -- Поле для первой сортировки
  ORD_NUM_2 integer NOT NULL, -- Поле для 2-ой сортировки
  -- Ещё много полей не относящихся к делу
  CONSTRAINT PK_SYMPTOMS PRIMARY KEY (ID),
);
...
Рейтинг: 0 / 0
Двойная сортировка
    #38938303
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЯНХНП
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Двойная сортировка
    #38938336
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TonalА вот как быть с 2мя сортировками, что-то в голову не приходит...
Забей на непрерывнось служебных значений, заполняй поля сортировки как NG*Х+NSA*У+NSAD и
NG*Х+NS*У+NSD соответственно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Двойная сортировка
    #38938426
Фотография Tonal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению условие на непрерывность не обходится...
Придётся по ходу сохранять на клиенте дерево и выдавать 2 запроса...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Двойная сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]