0

私はcouchbase json-document指向で作業したいです。しかし、データを保存して構造化し、後で取得するための最良の方法が何であるかはわかりません。

開始するためのチュートリアルはありますか (couchbase.com の学習リソースは役に立ちませんでした)。

PHPを使用してcouchbaseにアクセスしています。次のサンプルがあります。

(new document)
user1
{
"uid":1,
"name":"marius"
}

(new document)
planet1
{
"pid":1,
"user_uid":1,
"name":"earth"
}

(new document)
user2
{
"uid":2,
"name":"anyone"
}

(new document)
planet2
{
"pid":2,
"user_uid":2,
"name":"saturn"
}

これらのドキュメントをデータベースに設定 (挿入) する最もスマートな方法と、選択によってドキュメントを取得 (選択) する方法を教えてください。

SQLでそれを言いたい -> SELECT * FROM user,planet WHERE user.uid=1 AND planet.user_uid=1

4

2 に答える 2

0

ドキュメントがどのように設計されるべきかについて、一般的な方法はありません。アプリの特性によって異なります。書き込みと読み取りの比率?データはどのように消費されるかなど。カウチのビューを使用してデータを変換する利点により、より「一般的な」ドキュメントを作成し、ユースケースに合わせてドキュメントを変換する特定のビューを作成できると思います。もちろん、すべてのユースケースに適用すべきソリューションではありません (特効薬の設計とは見なさないでください)。

古典的な例はブログの例です。投稿にコメントを保存するか、コメントを抽出して、参照とともに独自に存在させる必要がありますか? 特性によります。コメントが少ない方が一般的ですか、それともコメントが多いのが一般的ですか?

別のサンプル。注文書を保存するとどうなりますか。顧客は注文の一部であるべきか、それとも顧客の注文であるべきか? それは両方でしょうか?はい、可能です。ドキュメントデータベースでは、データの複製に対してもう少しオープンにする必要があると思います。顧客ドキュメントがまだ顧客の「現在のビュー」として存在し、すべてのデータと注文に顧客スナップショットのフラグメントが含まれている可能性があります。実際の顧客ドキュメントへの参照を使用するアプリの注文コンテキストと概要に役立ちますか? おそらく。ただし、繰り返しになりますが、データをどのように消費するかによって異なります。

SQL翻訳について:http: //www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-sql.html

于 2013-03-14T21:21:25.027 に答える
0

Couchbase は、リレーショナル データベースとは異なる方法でデータを保存します。

Couchbase からデータを取得するには、主に 2 つの方法があります。

キー/値. これは、ドキュメントに 1 つのキーを指定してクエリを実行すると、明らかにその値がドキュメント全体になることを意味します。したがって、ユーザーの場合:


user = couch.get(123)

これにより、ユーザー ID 123 のドキュメント全体が返されます。

ビュー。map/reduce 関数を使用して、Couchbase でビューを作成できます。素晴らしいことに、これらのビューには CouchDB のビューと同様の方法でアクセスできるため、順序付けや制限などを行うことができます。 http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options

Couchbase ポータルで設計ドキュメント/ビューを確認してください。これを書くと、map/reduce をテストするための URL が得られます。次に、URL にパラメーターを追加して、追加の作業を行うことができます。

于 2013-03-01T16:17:13.857 に答える