leveldb - LMDB 是否支持多个键到相同的值映射?
问题描述
是否可以将多个键映射到相同的值?如果没有,是否有解决此功能的方法?
解决方案
这是不可能的。我使用的一种解决方法是让第二个键上的值成为指向主键的指针。即第二个键的值是主键。
特别是,我制作了一个辅助键表(或 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"
推荐阅读
- javascript - 为什么用“/”来渲染索引页
- visual-studio-code - vscode“应用代码动作组织导入”
- python - 无重复排列
- javascript - 如何使用 javascript css 或 html attr 禁用 iOS 链接预览
- html - 同一图像之间的不同颜色对比度
- laravel - 为什么 Laravel 7 在使用 godaddy linux deluxe 包上托管的 g-suite (gmail) 服务发送电子邮件时会延迟 1 分钟
- python - ManyToMany的Django交集使用Through模型
- python - Python使用animation.FuncAnimation制作GIF的几个问题
- swift - SwiftUI 绑定默认值(参数标签 '(wrappedValue:)' 不匹配任何可用的重载)
- angular - Angular DOM 未更新