1 人のユーザーに何千もの関係を許可するための最適な設計は何ですか?
(ソーシャル ネットワーキング アプリに取り組んでいます - 「一般的な」ソーシャル ネットワーク デザインを知っている場合は、それらを指摘してください..役に立つでしょう)
この画像を見てください - ステータスの更新はリンクされたリストを表し、興味は雑多な興味を表しています..これらの興味は、1 人のユーザーの数千のノードに実際に爆発する可能性があります-それは一種のスーパーノードの問題につながるのではないでしょうか?
図1
それらの興味のカテゴリ、または「ヘッダー」ノードを用意し、これら 2 つの興味をそのカテゴリ ノードに分類する方が良い設計でしょうか? 最初にユーザー ノードとほんの数個のリレーションシップ/ヘッダー ノードを扱うので、ユーザー ノードに直接関連する可能性のある数千のノードを使用するよりも効率的である可能性があると考えています。
例:
図 2
ユーザー
|
+ 利子+
+----- 利子
+----- 利子
+----- など...
また、次のような「本」、「映画」、「製品」などの「サブヘッダー」カテゴリノードも興味に含める必要はありません。
**FIGURE 3**
User
|
+ interests+
+ books+
| + interest
| + interest
| + interest
+ movies+<br>
+ interest
+ interest
+ interest
(明らかに、私はneoに反対です)
ここに私の質問があります:
高性能でスケーラブルなfacebook のようなシステムに最適なモデルはどれですか? カテゴリのないモデルとカテゴリのあるモデルはどれですか? パフォーマンスを念頭に置いてください..
関心は常に数千のノードに爆発するわけではありません - ダースまたは 100 になる可能性があります - カテゴリの設計を追加するとオーバーヘッドが増えすぎますか? あなたと同じ本が好きな友達を探すことを検討してください。カテゴリを追加するとオーバーヘッドが増えすぎませんか?
後者の画像 (カテゴリ ノードとサブカテゴリ ノードを含む画像) は、見た目が良くなるだけで、パフォーマンスや構成などには何も影響しないのでしょうか?
カテゴリ ノードの代わりに、それがどのカテゴリに属しているかを説明するカテゴリ プロパティが必要ですか? また、インデックスにカテゴリ プロパティを持つノードを追加することは、カテゴリ ノードを持つことと同じくらい良いでしょうか?
質問 4 に関して、インデックスにカテゴリを持つノードを追加することはより良い解決策でしょうか?
このタイプの構造の欠点は何ですか? それらは本当の利点ですか?