我是 PostgreSQL 新手。我对需要构建的混合数据库有一个非常不寻常的要求。从我见过的模块来看,在我看来,以下是可能的。
我需要能够将 key - [values] 添加到索引中,而无需实际将数据添加到表中。简单地说,我需要一个 key-[values] 存储,最好是一个 btree(查找速度)。索引结构是理想的。也许另一种结构可以做到这一点。
具体来说,我希望存储如下内容:
KEY [IDs]
Blue 10, 20, 23, 47
Green 5, 12, 40
我不希望存储这些数据和索引它的开销。可以这么说,我只需要“索引但未存储”的数据。
同样重要的是能够查询这些结构并获取数据(ID),并能够在 ID 上执行 INTERSECTS 等,并在键上执行 IN、BETWEEN、= 等。
正如您可能猜到的,最终目标是最终的 ID 列表,然后将其发送给客户端,并随意查找。
编辑
我不想要的是记录每个值的键。使用上面的示例,我不想存储 {Blue, 10}、{Blue, 20} 等。我想存储 {Blue, [10, 20, 23, 47]}。
如果我将其存储为传统表格,则无法解决此重复问题。
再看一下 Blue,[10, 20, 23, 47]},这在技术上只不过是一个 btree,其中 ID (10, 20, 23, 47) 被标记为值,父键“Blue”被标记为键。
由于这种数据类型不匹配可能在一棵树中很混乱,我认为理想的解决方案是“[btrees] in a btree”,其中“btree”是键,而 [btrees] 是 a 的每组值的 btree钥匙。