私は Orm フレームワークの経験があり、NoSql データベース ソリューションの構造を理解し始めています。オブジェクト モデルに基づくいくつかのサンプルを使用します。
以下のドキュメント モデルがあり、いくつかのシナリオ処理を考えたいと思います。
- タグの少ない投稿を保存
- タグリストと投稿数を表示
- タグを更新する
public class Post
{
public string Title { get; set; }
public List<Tag> Tags { get; set; }
}
public class Tag
{
public string Name { get; set; }
}
そして、私のシナリオについていくつかの疑問が頭に浮かびます。
Post クラスは、タグ付きで保存されるドキュメントです。RDBMSでは、タグとポストには多対多の関係がありますが、NoSqlには関係がないため、投稿オブジェクトはメンバー全体で保存されることを理解しています。したがって、投稿カウントシナリオでタグリストを表示すると、投稿アイテム全体で重いクエリが発生しますすべてのクエリでいくらかの努力を払っているので、このシナリオで NoSql パワーのすべての利点を失うことはありませんか?
タグ名を更新しても複雑なジョブは発生しませんか? 投稿アイテム全体を照会し、そのタグ名があることを確認して更新する必要があります。ちなみに、マルチドキュメントトランザクションと長いプロセスが必要なので、NoSqlでマルチドキュメントトランザクションがサポートされていないため、失敗するとデータベースに矛盾が生じます。どうすればこれを処理できますか?
RDBMS(Sql) システムに対して NoSql の短所を示すつもりはありません。私は、このシナリオについて私の考えが正しいかどうかを理解しようとしているだけです.私が見逃したものがあるか、物事が悪く見えるかは、私が思っていたほど悪くはありません. スケーラビリティが必要なので、NoSql ソリューションに興味があります。