急ごしらえの質問:
要約すると、データベース内の既存のユーザー テーブルに構造的な変更を加えることなく、無期限にバッジ ルールを作成できるようなデータベースをどのように設計すればよいか、少し混乱しています。
バッジのタイトル、基準などを保存します。そのテーブルはどのように見えるでしょうか?
- Badge_id (1)
- Badge_title (10K バッジ)
- バッジ画像 (10k.jpg)
- Badge_criteria ([投稿] >= 10000)
...
曲がりくねった質問:
私自身の個人的なプロジェクトにバッジ システムを実装したいと考えていますが、そのようなことを行う最善の方法について少しアドバイスを求めています。バッジ システムに関するいくつかの質問をここで読みましたが、データベース アーキテクチャがあまり注目されていません。
ユーザー ポイントに基づくバッジ (仮想の「10k バッジ」) は、非常に単純に見えます。ユーザーの評判に影響を与えるイベント (賛成票、反対票、回答の承認など) は、ユーザーの新しい評判を確認するメソッドを呼び出し、バッジを授与する可能性があります。
このシステムはかなり単純明快に聞こえますが、管理者が将来簡単に無数のバッジを作成したいと考えている場合、データベースとしてどのように見えるでしょうか。評判。
ユーザーの評判は、ユーザー レコード自体の値である可能性があります。しかし理想的には、新しいバッジを作成するときにユーザー テーブルに新しいフィールドを追加する必要はありませんか? たとえば、「Edited 100 Entries」バッジの場合、Users テーブル内に新しい列「entries_edited」を作成することはありませんよね? そして、エントリが編集されるたびにそれを増やします...
ヒントはありますか?
Stackoverflow アーカイブ:
注: バッジをユーザーに関連付ける方法を尋ねているわけではありません。バッジを授与する方法を尋ねているわけではありません (これはプログラムによって行われます)。