リレーショナル データベースを noSQL 方式で使用することの長所と短所は何ですか?
noSQL とは、かなり単純なクエリ言語と水平方向のスケーリングを備えたキー値ストレージを意味します。
ここで、postgreSQL データベースが設計され、キーと値の方法でクエリが実行される簡単な実験を行っています。これが例です。リレーショナル モデルで 1 対多の User と Article とします。
関連した:
User Article
| id | login | | id | user_id | title |
|----+-------| |----+---------+-------|
| 1 | Alex | | 1 | 1 | FooBar|
| 2 | Ann | | 2 | 1 | GoGoGo|
-------------- ------------------------
and some constraints on user id
すべてのユーザーの記事を取得するには、何らかの結合が必要です。
Key-Value スタイル:
User Article
| id | login | articles | | id | user_id | title |
|----|-------|----------| |----+---------+-------|
| 1 | Alex | 1, 2 | | 1 | 1 | FooBar|
| 2 | Ann | | | 2 | 1 | GoGoGo|
------------------------- ------------------------
User.articles を配列にします。たとえば、postgreSQL には配列を操作するためのツールがいくつかあります。
この場合、最初にユーザーのクエリを作成し、記事 ID を取得するときにそれらをすべて選択します。これは、MongdDB のコレクションのやり方と非常によく似ていると思います。
さらに、2 番目のケースは、私の大学の家庭教師が決してそうするように言わないものですが、このアプローチは非常に非常に拡張性が高いように見えます。
車輪の再発明のように見えますが、主な目標は、現在 postgres を使用している有望なプロジェクトにスケーラブルなソリューションを提供することです。