【发布时间】:2012-03-17 17:43:23
【问题描述】:
我已经习惯了 MySQL,现在正在尝试理解如何使用键值存储。我还没有看到像数据库设计以及如何插入和获取信息这样的优秀菜鸟示例。
这是您如何将 MySQL 中的数据存储在键值存储中的正确表示吗?
TYPE: MySQL
TABLE: users
COLUMNS: user_id(primary), username, location
TYPE: Key Value Store
TABLE: users
KEY: user_id
VALUES: username, location
所以,如果我在上面是正确的。提取一般用户信息很容易理解。但是我将如何在键值存储中执行以下查询?
SELECT username FROM users WHERE location = 'mexico'
我认为您可以轻松做到这一点的方法是创建另一个表。 (假设有超过 5,000 个用户,如果你只有几百个,我相信还有其他方法可以做到这一点)
--Original Table--
TYPE: Key Value Store
TABLE: users
KEY: user_id
VALUES: username, location
--Additional "query" Table--
TYPE: Key Value Store
TABLE: user-location
KEY: location
VALUES: user_id
但是,现在我们需要在有人新加入、更新他们的位置等时调整两个表。我想这没什么大不了的,你只需要非常准确地处理你的应用程序代码。
这是解决这些问题的最佳方法吗?还是我错过了什么?
【问题讨论】:
-
一般来说,NoSQL 数据存储提供的功能较少。它们并不完全以开发人员的生产力而闻名。
标签: database-design nosql amazon-simpledb key-value-store amazon-dynamodb