Я новичок в PostgreSQL. У меня очень необычное требование для гибридной базы данных, которую мне нужно построить. Из модулей, которые я видел, мне кажется , что возможно следующее.
Мне нужно иметь возможность добавлять ключ - [значения] в индекс без фактического добавления данных в таблицу. Проще говоря, мне нужно хранилище ключей [значений], в идеале, как btree (скорость поиска). Структура индекса идеальна. Возможно, другая структура сделает это.
Чтобы быть очень конкретным, я хочу сохранить что-то вроде:
KEY [IDs]
Blue 10, 20, 23, 47
Green 5, 12, 40
Я не хочу затрат на хранение этих данных и их индексацию. Мне просто нужны данные, так сказать, «проиндексированные, но не сохраненные».
Не менее важна способность запрашивать эти структуры и получать данные (идентификаторы), а также иметь возможность выполнять ИНТЕРЕСЫ и т. Д. Для идентификаторов, а также IN, МЕЖДУ, = и т. Д. Для ключей.
Как вы, вероятно, можете догадаться, конечной целью является окончательный список идентификаторов, который затем будет отправлен клиенту и проверен по желанию.
EDIT
Чего я не хочу, так это записывать ключ для каждого значения. Используя приведенный выше пример, я не хочу хранить {Blue, 10}, {Blue, 20} и т. Д. Я хочу сохранить {Blue, [10, 20, 23, 47]}.
Если я сохраню это как традиционную таблицу, я не смогу обойти эту двойную проблему.
Глядя снова на Blue, [10, 20, 23, 47]}, технически это не более чем одно дерево, где идентификаторы (10, 20, 23, 47) помечены как значения, а родительский ключ «Синий» помечен как ключ.
Поскольку это несоответствие типов данных может быть грязным в одном дереве, я считаю, что идеальным решением является «[btrees] в btree», где «btree» - это ключ, а [btrees] - это btree для каждой группы значения ключа.