LMDB 是否支持多个键到相同值的映射?
Does LMDB support multiple keys to same value mapping?
是否可以将多个键映射到同一个值?如果没有,是否有解决此功能的方法?
这是不可能的。我使用的一种解决方法是让第二个键上的值成为指向主键的指针。即第二个键的值是主键
特别是,我制作了一个辅助键 table(或 lmdb 中的 "Named Database"),其中所有 值 都是主键中的主键table。如果您进一步研究其他数据库,这正是它们实现索引的方式。
例如
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"
是否可以将多个键映射到同一个值?如果没有,是否有解决此功能的方法?
这是不可能的。我使用的一种解决方法是让第二个键上的值成为指向主键的指针。即第二个键的值是主键
特别是,我制作了一个辅助键 table(或 lmdb 中的 "Named Database"),其中所有 值 都是主键中的主键table。如果您进一步研究其他数据库,这正是它们实现索引的方式。
例如
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"