为了账号安全,请及时绑定邮箱和手机立即绑定

在 BoltDB 中使用两个单独的键

在 BoltDB 中使用两个单独的键

Go
慕娘9325324 2021-12-27 15:02:36
我有一个User带有ID和LoginName字段的结构,我希望通过对数据库的单次调用,这些字段中的任何一个都可以访问该结构。我知道 BoltDB 不应该处理任意字段索引等(与 SQL 不同),但这种情况有点不同,因为我碰巧事先知道 b 的附加字段用作索引。那么是否有某种辅助键或多键索引?或者也许是我看不到的一些策略?如果没有,那么我将通过两次调用来实现它,我只是更喜欢“更清洁”的解决方案......谢谢!
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

不,它不在那里。BoltDB 很像 Go。干净简单。在上面构建一个层很容易。BoltDB 甚至允许简单地实现更新事务,因此可以原子地更新或不更新另外两个存储桶。因此,创建一个保持两个或更多存储桶同步的更新事务很容易。但听起来您知道这一点,只是想检查一下您是否没有遗漏任何东西。


查看完整回答
反对 回复 2021-12-27
?
jeck猫

TA贡献1909条经验 获得超7个赞

BoltDB 中没有辅助键索引,但您可以实现它。

您可以将 ID 存储到另一个存储桶中的 LoginName 映射,从技术上讲,它将是您的结构的“辅助键”。即先从二级键中获取主键值,再获取User结构体。

如果您的大部分调用都在 LoginName 键上,请使用 LoginName 到 ID 映射并将 User 结构存储在 LoginName 键下,反之亦然。

小心:你必须自己保持一致性,记住这一点。


查看完整回答
反对 回复 2021-12-27
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号