問題タブ [non-relational-database]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-app-engine - コメントの App Engine データ モデリング
現在のアプリケーションにコメント セクションを実装しています。コメント セクションは、特定のページに対する一連のユーザー投稿と考えることができます。非リレーショナル データベース (Google App Engine) で最も効果的な設計はどれか考えています。
設計 1: コメントを groupId でグループ化し、それらの結果をフィルター処理する
ページに関するすべてのコメントのクエリは次のようになります。
設計 2: グループ内のすべてのコメントに対して 1 つのキーを格納し、エントリ数が 5000 エントリを超える場合は自己拡張リストを使用します。
クエリは単に ID/キー ルックアップを実行します。
インデックスが高価になる可能性があることは理解していますが、最初の設計提案では groupId フィールドのみをインデックス化し、コメントを投稿するために必要な書き込みは 1 回だけです (インデックスを含めると、より多くの書き込みが必要になります)。
2 番目の設計では、コストのかかるインデックス作成を回避できますが、投稿されたコメントごとに読み取り操作と書き込み操作が必要になります。さらに、競合の問題が心配です。これらのコメントで極端に高いスループットが発生することはないはずですが、2 番目の設計がボトルネックになっているようです。
私は非リレーショナル DB を初めて使用するので、これらの提案された設計とそれに関連するトレードオフについて意見をいただければ幸いです。
database - フィールドに基づいて 1 つのモデルを複数のモデルに関連付ける
モデルの簡単な説明は次のとおりです。
- モデル A は機器を表し、名前と状態を持っています
- モデル B は、多くのモデル A の特定の状態を表します
- モデル B は多くのモデル A に関連付ける必要がありますが、モデル A の特定の状態にのみ関連付ける必要があります
データストアでこのようなモデルを作成することは可能ですか? モデル A の状態がモデル B から独立している必要がありますが、モデル BI を覗き込むと、モデル B が表しているモデル A の状態がどうあるべきかを知る必要があります。
私がこれを達成している現在の方法は、モデル B に異なるモデル A を表す文字列フィールドを持たせることです。フィールドの名前はモデル A の名前であり、フィールドの値はモデル A が想定されている状態です。 .
これは機能しますが、完全に静的であり、モデル A の数が変更されたときに手動でモデル B にフィールドを追加する必要があります。この問題を解決するための動的なアプローチを探しています。
これがあまり混乱しないことを願っています。必要な場合は、さらに説明を求めてください。
java - リレーショナルまたは非リレーショナル DB に直接保存するための Java XML 形式
Java オブジェクトをリレーショナル データベースまたは非リレーショナル データベースに保存するための標準 XML 形式はありますか?
JSON を MongoDB に (BSON として) 直接保存する方法に似たものを Java で探しています。
非リレーショナル データベースである必要はありません。ORM プロセスを備えたもので十分です。
したがって、それは XML (または類似のもの) で表される Java オブジェクトであり、XML はワイヤ経由で送信され、DB に保存されます。おそらく、リレーショナル データベースに対してこれを行う意味はありません。
JAXB は町で唯一のゲームですか?
database - リレーショナル データベースと非リレーショナル データベースのどちらを選択するか?
大量のデータを保存する Web サイトを構築する必要があります。インターネットで検索して、リレーショナル データベースと非リレーショナル データベースのどちらを使用するかを決定します。いい答えが見つかりません。一部の Web サイトでは、大量のデータがある場合は非リレーショナル データベースを選択できると言っていますが、これは良い戦略ではないと思います。Facebook (たとえば) はリレーショナル データベース (mysql) を使用しますが、Facebook データベースには多くのデータが格納されています。他の Web サイトでは、データをテーブルで整理できる場合は、リレーショナル データベースを選択できると述べています。ただし、ウェブサイトが言うように、非リレーショナル データベースのパフォーマンスは、リレーショナル データベースよりも優れています。データをテーブルに整理できますが、パフォーマンスを低下させたくありません。
私のニーズは、膨大な量のデータを保存し、それらにできるだけ速くアクセスすることです。では、リレーショナル データベースか非リレーショナル データベースかをどのように判断すればよいでしょうか。
mongodb - ドメイン オブジェクトのリレーショナル参照 - Id を含めるか含めないか?
プロジェクトのドメイン オブジェクトを設計するための最良の方法を知りたいです。
ドメイン オブジェクトは、ORM/フレームワーク、さらにはデータベース テクノロジ (MySQL、MSSQL、さらには Mongo) についても知らない必要があります。
そして、次の質問が頭に浮かびます。Post と Comment という 2 つのオブジェクトがあるとしましょう。
これは Post オブジェクトのコードです:
ここで、Comment オブジェクトに関する私の質問は、それが Post ID を含むべきか、それとも Post オブジェクトだけを含むべきかということです。
リレーショナル オブジェクトまたはそのドメイン オブジェクトの Id を含めることは良い方法ですか?
もう 1 つの懸念は、mongodb のような SQL データベースがないことです。データを mongodb に保存した場合、Comment オブジェクトはどの Post オブジェクトを参照しますか? mongodb では、投稿とコメントの間に関係はありません。投稿にはコメントのリストが含まれますが、コメント自体は、それらが含まれる投稿を認識しません。これらのドメイン クラスを Sql ベースのデータベースと NoSql データベースの両方と互換性を持たせるにはどうすればよいでしょうか?
ありがとうございました
cassandra - 単純な列のCassandra where句
私は Cassandra を初めて使用し、非常に基本的なテーブルで単純な選択クエリを使用するのが困難です。例えば、
この特定のテーブルで:
=
演算子は使用できますが、 >, < >=, <=
. この記事やさまざまなキーの種類に関するこのオーバーフローの質問など、この件について読んだことがありますが、まだ不明です。上の表でdate
は SIMPLE 列WHERE
ですが、通常の RDBMS で使用するように句を使用できないのはなぜですか?
data-warehouse - リレーショナル データベースおよび非リレーショナル データベースからのデータ ウェアハウス
ケーススタディに取り組んでいます。データ ウェアハウスの作成に関する質問があります。ただし、リレーショナル データベースを使用する組織と非リレーショナル データベースを使用する組織の 2 つが関係しており、両方の組織が異なる CRM を使用しています。データ ウェアハウスの作成と実装中に発生する可能性のある課題は何ですか?