Поддерживает ли LMDB несколько ключей для сопоставления одного и того же значения? - PullRequest
0 голосов
/ 05 декабря 2018

возможно ли иметь несколько ключей, сопоставляющих одно и то же значение?Если нет, можно ли обойти эту функцию?

1 Ответ

0 голосов
/ 05 декабря 2018

Это невозможно.Один из обходных путей, который я использую, заключается в том, чтобы значение во втором ключе было указателем на первичный ключ.То есть значение второго ключа равно первичному ключу.

В частности, я создаю таблицу вторичных ключей (или "Именованная база данных" на языке lmdb), где все значения являются первичными ключами в первичной таблице.Если вы загляните дальше в другую базу данных, именно так они реализуют индексы.


Например

Data table:
    key: 72E13E60-85A6-4191-A187-F6FA5D3F0975
    value: {
       "surrogate-key": "72E13E60-85A6-4191-A187-F6FA5D3F0975",
       "name": "Foo Widget",
       "location": "Atlantis Mall",
       "last-value": 892
    }
Name table:
    key: "Foo Widget",
    value: "72E13E60-85A6-4191-A187-F6FA5D3F0975"
Location table:
    key: "Atlantis Mall",
    value: "72E13E60-85A6-4191-A187-F6FA5D3F0975"
...