0

私はソーシャルネットワークの性質を持つ Web アプリを構築しています。パブリッシャー、ユーザー、パブリケーション、投稿、コメントなど、関連するエンティティが多数あります。購読、いいね、共有、コメント、友達、フォロー、仕事、著者などの関係。また、いつものように、出版物、投稿、コメントのコンテンツにあるいくつかのエンティティのコンテンツがあります。

出版物と投稿は類似しており、複数のテキストまたは 1 つのメディア ファイルを含む従来のソーシャル投稿とまったく同じです。また、出版物、投稿、コメントはこれまでになく増加し、高い数に達するでしょう。

Postgresql に依存している Cayley db を使用する予定です。

エンティティの関係を記述するこれまでの完全なタプルは次のとおりです。

publisher -publish- publication
user -subscribe- publisher
user -comment- publication
user -like- publication
user -share- publication

user -post- post
user -friend- user
user -comment- post
user -like- post
user -share- post

publisher -follow- publisher

user -work- publisher
user -author- publication

質問は:

1 対多のテキスト フィールドやメディア ファイルなどのコンテンツもあり、ユーザーがいいね! を押したり、共有したり、コメントしたりする投稿/コメントをどこに保存しますか?

投稿/コメントをグラフ データベースに保存する必要がありますか? その場合、コンテンツを保存するか、参照のみを保存してコンテンツを別のデータベース、テーブル、またはドキュメントに保存する必要がありますか? これらのエンティティの量に関しては、多数に達するでしょう。

4

1 に答える 1

0

この未解決の質問に出くわし、将来の参考のために答えようと思いました。

もちろん、実装と要件に完全に依存します。コメントは Cayley に保存できますが、画像/ビデオまたはその他のメディアは除外します。特定のリソースへの URI またはオブジェクトの UUID を別のデータストアに保存するだけです。

コメントにも。コメントのUUID / IDをgraphdbに保存し、実際のコメントをPostgresまたはディスク上のファイルに保存することもできます(例として)。

個人的には、graphdb をできるだけ小さくして、実際のコンテンツを別のストレージに保存することを好みます。

于 2018-02-05T11:30:50.510 に答える