powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужен совет в выборе формата связующих таблиц
4 сообщений из 4, страница 1 из 1
Нужен совет в выборе формата связующих таблиц
    #39881493
Victor256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Используется PostgreSQL 10.

Есть 2 таблицы-справочника, и есть связующая их таблица формата one-to-many (не суть важно), в ней только 2 поля, в которых будут некие id, указывающие на строки в каждой из справочников.

Ожидается, что справочные таблицы будут не особо большие (сотни тыс. строк, это будут списки неких устройств, и будет в т.ч. уникальный id устройства), а вот связующая таблица будет на порядок-два больше. Так же планирую использовать для неё внешние ключи (для CASCADE DELETE).

Пытаюсь определится с форматом параметра, по которому будет связь. Есть два варианта: обычный bigserial или уникальный строковый id устройства. Размер последнего - порядка 12-20 байт, т.е. ожидаемый размер строки - 24-40 байт, размер связующей таблицы в этом случае для 10 млн. строк - 240-400 мб. В случае же int8 160 мб.

Будет ли оправданным решение отказаться от int8 в пользу строковых уникальных id? Учитывая, что по ним будут ещё и другие связи (тоже с внешними ключами), итоговый размер базы, и что важнее, индексов может сильно вырасти. С другой стороны, текстовый первичный ключ немного упростит программную часть, т.к. пользователь работает именно с текстовыми идентификаторами строк.
...
Рейтинг: 0 / 0
Нужен совет в выборе формата связующих таблиц
    #39881548
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256,
Victor256Пытаюсь определится с форматом параметра, по которому будет связь. Есть два варианта: обычный bigserial или уникальный строковый id устройства. Размер последнего - порядка 12-20 байт, т.е. ожидаемый размер строки - 24-40 байт, размер связующей таблицы в этом случае для 10 млн. строк - 240-400 мб. В случае же int8 160 мб.

1. Вам лучше в форум по проектированию БД...
2. У вас реально больше 2 ярдов устройств? IMHO smallserial или serial будет достаточно, если нет, то см. п.1,
проблемы возможны если нужна "логическая" репликация, тогда разумнее использовать не уникальную строку, а тип uuid
...
Рейтинг: 0 / 0
Нужен совет в выборе формата связующих таблиц
    #39881699
Victor256
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fteУ вас реально больше 2 ярдов устройств
Не думаю, оставил "на отдалённое будущее", так сказать

fteпроблемы возможны если нужна "логическая" репликация
А что за проблемы, или где можно почитать про это?

Про uuid читал противоречивые комментарии. Кажется один из разрабов писал что использование uuid4, т.е. полностью рандомных ключей приводит к фрагментации индексов. На что кто-то другой ответил что ничего подобного, пользуйтесь и не парьтесь.
...
Рейтинг: 0 / 0
Нужен совет в выборе формата связующих таблиц
    #39881862
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor256,
Victor256А что за проблемы, или где можно почитать про это?


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


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