powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ID и выгрузка-загрузка
4 сообщений из 4, страница 1 из 1
ID и выгрузка-загрузка
    #33666202
bumbaras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СУБД PostgreSQL
Существует таблица на ID поля которой ссылаются поля из других таблиц.
При выгрузке данных из этой таблицы и загрузке в новую таблицу может возникнуть ситуация когда идет загрузка ID сперва с номером 2 потом 1 в следствии чего в секвенции запишется последнее значение 1 и после окончания загрузки нужно будет переставить значение секвенции = максимальному ID.
Как лучше делать дергать секвенцию или создать дополнительное поле с уникальным ключем который генерится собственной процедурой и ссылаться на него ?
...
Рейтинг: 0 / 0
ID и выгрузка-загрузка
    #33667310
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bumbarasСУБД PostgreSQL
Существует таблица на ID поля которой ссылаются поля из других таблиц.
При выгрузке данных из этой таблицы и загрузке в новую таблицу может возникнуть ситуация когда идет загрузка ID сперва с номером 2 потом 1 в следствии чего в секвенции запишется последнее значение 1 и после окончания загрузки нужно будет переставить значение секвенции = максимальному ID.
Как лучше делать дергать секвенцию или создать дополнительное поле с уникальным ключем который генерится собственной процедурой и ссылаться на него ?Не знаю что такое секвенция, но подозреваю, что то что уникально на одном сервере и генерится им же, не надо распространять на другой сервер. Хотя конечно, если у нас трудностей нет, то их надо создать.
...
Рейтинг: 0 / 0
ID и выгрузка-загрузка
    #33668705
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю, с какой стати при процессе переноса данных должна дергаться "секвенция" (которая, подозреваю, механизм выдачи id новым данным).

Собственно к проектированию вопрос имхо отношения не имеет; с точки зрения проектирования правильное решение можно сформулировать в паре тезисов:

При переносе данные сохраняют изначально выданные id.

При независимой генерации данных на нескольких серверах множества возможных значений id должны быть так или иначе разведены (не пересекаться).

Стандартные решения этого -


Ввести номер сервера как часть ключа; отдельным полем или частью значения id (по формулам вида id = sequence.nextval * 1000 + servernumber).

Выдавать id из непересекающихся диапазонов значений (например, на первом сервере create sequence ... start with 1 maxvalue 1000000000). Возможно, динамически распределять новые диапазоны при исчерпании старых.

Использовать GUID.

Как лучше сделать в Postrge - имхо стоит спросить в соответствующем форуме. Не исключаю, что эта задача уже давно решена штатными средствами.
...
Рейтинг: 0 / 0
ID и выгрузка-загрузка
    #33673873
bumbaras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо примерно так и думал делать
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / ID и выгрузка-загрузка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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