1

すべてのユーザー間の相関値を保存する Web サイトのユーザーのデータベースを作成しようとしています。これが意味することは、ユーザーのペアごとに、2 人のユーザー間の相関関係の値が保存されているということです。

相関値は、相関アルゴリズムを使用して PHP によって計算されます。私の質問は、それらを MySQL データベースに保存する最も正しい方法は何ですか? 次のようなテーブルを作成できることに気付きました。

         ---------------------------------
        | user1 | user2 | user3 | etc... |
 -----------------------------------------
| user1 | #val  | #val  | #val  | #val   |
 -----------------------------------------
| user2 | #val  | #val  | #val  | #val   |
 -----------------------------------------
| user3 | #val  | #val  | #val  | #val   |

など。しかし、私はこの方法が好きではありません

  • すべての値を 2 回格納します。たとえば、user1 と user3 の間の相関関係は、行 1 列 3 と行 3 列 1 に格納されます。
  • つまり、ユーザー ID を SQL ステートメントに連結しない限り、ユーザー ID にちなんで名付けられた列を選択することはできません。これは明らかに理想的ではありません。

私の代替手段は何ですか?これが MySQL でうまく実行できる場合、どうすればよいでしょうか?

これが MySQL でうまくできない場合、他に学ぶべきデータベースの種類はありますか? たとえば、グラフ データベース システムがこれに適していることはわかっていますが、MySQL でグラフ データベースを使用できるのであれば、その使用方法を学習するのに時間をかけたくありません。

4

3 に答える 3

0

私の意見では、最善の解決策は 2 つのテーブルを持つことです... Users と UsersRelations

ユーザー関係:

====================================
User1Field | User2Field | ValueField
====================================
#User      | #User      | #val
------------------------------------
#User      | #User      | #val
------------------------------------
#User      | #User      | #val
------------------------------------
于 2013-05-02T00:10:26.473 に答える