2

キーワードを追跡し、各ユーザーのデータベースにスコア システムを設定したいと考えています。

私はuserテーブルと彼らのwebsiteテーブルを用意します。

user テーブルには、ユーザー ID、電子メール、パスワードなどの基本情報が含まれます。Web サイト テーブルには、id、user_id、キーワード、およびスコアが含まれます。

そのため、MySQLicious タグ付けソリューションを実装する Web サイト テーブルにすべてのキーワード (最大 5 つのキーワード) を保持します。

私が持っている質問は、私は常にスコアを更新するので、ウェブサイトのテーブルに「スコア」フィールドを保持するか、まったく新しいテーブルを作成して、ウェブサイトの id フィールドに基づいてすべてのスコアをリンクする必要がありますか??

編集:また、キーワードを同じテーブルに保持するか、それらを分離する必要がありますか?

4

2 に答える 2

1

スコアだけがある場合は、それをWebサイトのテーブルに追加することをお勧めします。ほとんどの場合、別のテーブルを作成すると、利点はほとんどありませんが、事態は複雑になります。ただし、別のテーブルを作成したい場合があります。

  • あなたはたくさんのウェブサイトを持っていて、そのうちのいくつかだけがスコアを持っています。ほとんどのWebサイトのNULLスコアを保存する代わりに、それらを持っているWebサイトのスコアのみを保存する別のテーブルを追加します。
  • Webサイトとスコアに1対1の関係がないか、その関係に独自のプロパティがあります(シナリオではおそらくありません)。
  • あなたはすでにたくさんのウェブサイトを持っていて、今スコア機能を追加しています。新しいバージョンのアプリをデプロイするときに時間がかかるため、データベーススキーマを変更したくない場合があります。時間がかかる可能性のあるWebサイトのテーブルを変更する代わりに、新しいテーブルを追加します。
于 2012-12-19T08:16:56.860 に答える
0

同じテーブルにスコアを保持するだけです。別のテーブルに保管してもメリットはありません。更新したい場合は、新しいスコアでテーブルを直接更新できます。これらのテーブルを分離しても、外部キーの負担を除いて、他の利点はありません。

于 2012-12-19T04:55:45.710 に答える