問題タブ [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.
mongodb - N:M 関係の MongoDB で推奨されるカスケード削除に相当するものは何ですか?
次の「スキーマ/関係」設計を想定すると、カスケード削除のような操作で削除を処理するための推奨される方法は何ですか?
リレーショナル スキーマ:
モンゴDB:
学生をコースに登録するというこの古典的な設計を考えると、MongoDB を使用する場合、学生にコースのコレクションを持ち、その逆は適切なデータ モデルのようです (関係/登録テーブルには何もありません)。しかし、リレーショナルの世界から来て、コースを削除するセマンティクスをどのように処理すればよいでしょうか? つまり、コースが削除されると、すべての「登録」レコードも削除される必要があります。つまり、各学生レコードのコレクションからコースを削除する必要があります。2 つのクエリを起動する必要があるようです。1 つはコースを削除するためのもので、次に各学生のコレクションから削除するためのものです。追加のクエリなしでセマンティックのようにこの「カスケード削除」を実行する単一のクエリを持つ方法はありますか? データモデルを変更する必要がありますか?
注: 他のすべてのユース ケースでは、上記のデータ モデルは問題なく機能します。
- 学生
=>
を削除すると、その学生とそれに関連するコースのコレクションが削除されます。 - コースを削除したい学生
=>
は、コースの学生コレクションからコースを削除するだけです - 学生/コース
=>
の追加は、本質的に対応する「テーブル」に追加するだけです。
唯一のトリッキーなことは、コースの削除を処理することです。私はリレーショナルのバックグラウンドを持っており、これを理解することができないため、MongoDB でこのシナリオをどのように処理すればよいでしょうか。
graph - Neo4j - 医学的症状をグラフに保存する
私は Neo4j グラフ データベースを使用して、病状や病気を保存しています。その背後にある目的は、ユーザーがシステムに入力した症状から、その人が持つ可能性のある病気を推奨することです。現在、私は次のようにさまざまな症状を保存しています。
これは非常に基本的なグラフ構造であり、発熱、頭痛、インフルエンザによる原因の交差など、サイファー クエリを使用してパターンを照合することにより、病気を検索しています。私が達成したいのは、場所や年齢の要因などを含む複雑な構造を構築し、効率的にトラバースして最も接続されているノードを検索するためのさまざまなアルゴリズムを作成することです。このような複雑な構造をインターネットで見つけることができないので、何か提案をいただければ幸いです。質問のようなコーディングはあまりありませんが、これは単なる大学のプロジェクトであるため、いくつかの提案をお願いします。これについてはさらに進めなければなりません。
sql-server - 非リレーショナル SQL Server データベースで Entity Framework を使用できますか?
私は、チャリティー バウチャー会社を経営する人々のためのデスクトップ アプリを開発した人と一緒にプロジェクトに取り組んでいます。彼らには、口座を持っている顧客、自分の口座にお金を入れている顧客、チャリティー バウチャー (小切手のようなもの) を慈善団体に書いている顧客がいます。
彼は、慈善団体と顧客の両方がログインして、アカウントや発行されたバウチャーなどの詳細を確認できる Web サイトを作成してほしいと言っています。
ほとんどのデータは彼のアプリから私の Web サイトに送られるため、データベースで彼の主キー ID を使用することに同意したので、データを簡単に照合できます。
私たちはそれに非常に熱心に取り組んでおり、彼がリレーショナル データベースの断固たる反対者であることを発見しました。彼のデータベースには、テーブル内の ID だけで、外部参照キーはまったくありません。彼は、関連するデータがそこにあるかどうかを確認するために、各テーブルに対して個別のクエリを実行します。
Entity Framework を使用したいのですが、彼から送られてくるデータが完全なものであるかどうか確信が持てないため、使用できるかどうかわかりません。たとえば、顧客 ID と慈善団体 ID が記載されたバウチャーの詳細を送ってくれたとしても、顧客が送信されていない可能性があるため、バウチャーの顧客 ID は顧客テーブルに存在しません。
私にできることはありますか?テーブル間に外部リンクを設定することはできません。これは、不完全なデータに遭遇するたびにエラーがスローされるためです。ただし、リンクがないと、EF を使用する利点がすべて失われます。
これまでの私の唯一の考えは、テーブルを無関係のままにして、エンティティの部分クラスを追加することです。プロパティはナビゲーション プロパティのように見えますが、「外部」データが存在するかどうかを確認し、存在する場合は戻ります。それ。
これは機能するかもしれませんが、多くの労力がかかるようです。この状況をどのように処理するかについて、より良い提案はありますか?
python - 1.6.1 に django non-rel をインストールする方法
私はdjangoバージョン1.6.1、python 2.7.5を使用しており、mongodb 2.4.6で作業しています。必要なのは、django設定ファイルにmongoエンジンを設定することだけです。このために、django非relパッケージをインストールする必要があります。 django 1.5 の non-rel のみが見つかりました。1.6.1 の djnago non-rel をインストールするにはどうすればよいですか
django non-rel 1.5 のこのリンクを見つけました
http://django-mongodb-engine.readthedocs.org/en/latest/topics/setup.html
python - Python 用の非リレーショナル データベースはありますか?
私はsqliteのようなものを探していますが、リレーショナルではありません。言い換えれば、テーブルの代わりにトリプル ストア (オブジェクト、述語、主語のトリプレットのセット) を使用したいと考えています。これは、SQL の代わりに SPARQL クエリを使用したいということです。
最初に頭に浮かぶアイデアは RDFLib です。ただし、このオプションには 2 つの問題があります。
- RDFLib はデータベースではないため、並列プロセスで動作するように設計されていません (たとえば、多くの Web ユーザーによって引き起こされる並列要求)。2 人のユーザーが同時にトリプル ストアに追加または削除しようとすると、不整合が生じる可能性があります。
- RDFLib は、トリプルストアの特定の実装 (構文) である RDF で動作するように設計されています。たとえば、各オブジェクト、述語、および主語には URI が必要ですが、私はそれらを持っていません。私のトリプルストアでは、次のようなトリプレットが必要です:
("Washington","is capital of", "USA")
(したがって、URI はありません)。