Ограничение размера и длины массива в PostgreSQL

Я работаю над веб-проектом с PostgreSQL в качестве баз данных. Я пытаюсь создать структуру веб-баз данных, которые включают таблицу модели векторного пространства. Я создал таблицу с атрибутом terms и docId[], где docId - это идентификатор документа этого термина. тип docId является целым числом []. Поэтому я могу ввести термин с списком документов, который включает этот термин в один массив. Но массив docId может содержать много записей.

так что мой вопрос: сколько максимальных размеров массива одно dimmension в postgres?

спасибо:)

2 ответа

В массивах Postgres нет ограничений по размеру. Должны быть ограничения на размер строк или столбцов, но это будет работать в миллионах записей.

Более SQL-способ связывания термина с документом является отношением от 1 до многих. Это реализовано следующим образом:

table term: columns term_id, term, document_id
table document: columns document_id, summary, ...

Столбец document_id в таблице term называется внешним ключом.


Я не нашел ограничений по количеству элементов в массиве, но есть размер поля. Максимальный размер поля в PostgreSQL составляет 1 ГБ, поэтому в массиве примерно 268435456 элементов. Имейте в виду, что индексирование такого массива или поиск через него, вероятно, будет бесполезным.

licensed under cc by-sa 3.0 with attribution.