私はMySQLに慣れていて、今はキーバリューストアの使い方を理解しようとしています。私が見たことがないのは、データベース設計の例のような良いnoobと、情報を挿入して取得する方法です。DynamoDBデータベースデザイン(Key-Value Store、noSQL)
これは、キーストアに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'
私はあなたがこれを簡単に行うことができると思った方法は、別のテーブルを作成することです。 、
--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
しかし、今、私たちは新しい誰かが参加する2つのテーブルを調整する必要があるが、その場所を更新する(あなただけの数百を持っていた場合は、これを行うには、他の方法があることを確認イム、5,000以上のユーザーがいると仮定)私が想定している大きな問題ではありません。あなたのアプリケーションのコードで超正確でなければなりません。
これは、これらの問題を解決する最善の方法ですか?または私は何かを逃していますか?
通常、NoSQLのデータストアは少ない機能しか提供しません。開発者の生産性を正確に把握することはできません。 – usr