2

つまり、2 人のユーザー プロファイルを分析すると、相反するというスコアが得られます。
a.affinity(b) == b.affinity(a)

特に知りたいのは:

  • アフィニティ テーブルを実装するために使用するスキーマ

  • どのデータベースmysql、redis、..

  • アフィニティ スコアをバックグラウンドで更新するには、どのテクノロジを使用しますか?

ありがとう

4

1 に答える 1

1

db設計の部分では、テーブルをそれ自体に結合する場合を除いて、結合/ジャンクションテーブルの概念を使用することをお勧めします。たとえば、ユーザーテーブルが次のようになっている場合:

UserId   UserName
------   --------
1        User Uno
2        User Dos
...

その場合、結合テーブルは次のようになります。

UserIdA  UserIdB    AffinityScore
------   --------   -------------
1        2          56
34       208        137

ここで、UserIdAとUserIdBは、最初のテーブルのUserIdへの外部キーです。(UidAとUidBが設定されたら、たとえばそれぞれ値1と2を確認し、値が交換された場合に関係が繰り返されないことを確認する必要があります。たとえば、UidAとUidBのそれぞれ値2と1は、アプリにいくつかの奇妙な点があります。SQLServerまたはMySqlを使用している場合は、CHECK制約を使用できます。)

結合テーブルの概念に関する限り、dbの選択は重要ではありません。これは、外部キーを含む単なるテーブルです。また、バックグラウンド更新を行う場合は、プラットフォームによって異なります。T-Sqlスクリプトを実行する実行可能ファイルまたはSSIS(Sql Server)を開始するcronジョブである可能性があり、その間に多くのことがあります。

于 2010-08-31T17:00:40.660 に答える