如何构造NoSQL模式,以便根据记录属性查询记录?
我在使用各种NoSQL数据库(主要是redis和couchdb)时遇到了一个问题: 如果我这样保存用户数据:如何构造NoSQL模式,以便根据记录属性查询记录?,nosql,redis,Nosql,Redis,我在使用各种NoSQL数据库(主要是redis和couchdb)时遇到了一个问题: 如果我这样保存用户数据: SET用户:5“{姓名:\'foobar\,年龄:26}” 我总是可以使用GET user:5检索它。但是,如果我不知道用户的id,但知道他们的名称,并希望查询以找出id,该怎么办 我们讨论的一些想法涉及在发送另一个SET的同时发送SET用户名:foobar“5”,但由于它们不像RDBMS中那样相关,草率的代码可能会意外地导致数据不匹配 有没有“标准”的方法来处理这样的过程?您描述的方法
SET用户:5“{姓名:\'foobar\,年龄:26}”
我总是可以使用GET user:5
检索它。但是,如果我不知道用户的id,但知道他们的名称
,并希望查询以找出id
,该怎么办
我们讨论的一些想法涉及在发送另一个SET
的同时发送SET用户名:foobar“5”
,但由于它们不像RDBMS中那样相关,草率的代码可能会意外地导致数据不匹配
有没有“标准”的方法来处理这样的过程?您描述的方法与Redis中的标准方法基本相同 您实际上是在创建用户名索引。其他系统会自动为您创建此类索引,并在数据更改时对其进行维护。有了Redis,你必须自己做这件事
是的,草率的代码将导致数据不匹配。这是每次非规范化或创建索引时所付出的成本。你只要小心就行。谢谢@sripathi krishnan。我们采用了这种方法,所以我们以后不会后悔的!