我多年来一直在RDBMS世界,但希望探索整个nosql运动。所以这是我的第一个问题:
有可能重复密钥是不好的做法吗?例如,键入姓氏的地址簿(最可能是搜索项?)可以有多个实体。那么使用姓氏是不好的做法吗?应该是实体中最“可搜索”的定义的关键?在这个全新的世界里(对我来说)有“最佳实践”的资源吗?
我对东京内阁(特别是tc界面)很感兴趣,但不知道如何迭代具有相同密钥的不同实体(例如见上文)。我只能得到第一个实体。无论如何,提前感谢您的帮助答案 0 :(得分:1)
这取决于no-sql实现。例如,Cassandra允许范围查询,因此您可以对数据建模以对姓氏进行查询,或者使用全名(从姓氏开始,然后是名字)。
除此之外,许多更简单的键值存储确实需要您为多值条目存储列表结构(或类似物)。这是否可行取决于预期的“重复”数量 - 使用姓氏,我认为数字可能相当高,因此在许多情况下它听起来不是理想模型。
答案 1 :(得分:0)
在键值存储中,您不能拥有重复键,键后面只有一个值。要拥有重复键,您可以使用Tokyo Cabinet中的B + Tree数据库,该数据库具有已排序的值并允许重复(您可以通过使用该键转到第一个项目并进行迭代来访问它们。)
并非所有问题都可以通过键值存储轻松解决,因为您需要密钥来检索项目。也许像MongoDB这样的东西更适合允许更复杂的查询。