2016-04-22 4 views
0

特定のことをするときにポイントをユーザーに提供したいと思います。例えば:のための唯一のポイントがあるような質問 アクティビティのためにユーザーに報酬を与えるためのデータベーススキーマ

  • 記事
  • など

    を好きに答える質問

  • を追加する記事
  • を追加

    • は、それらのいくつかの条件を持つことができます1日に最初の3つの記事が、私は私のコードベースでこれを直接処理すると思います。

      問題は、これを処理するための優れたデータベース設計は何ですか?私は3つのテーブルを考える。

      • user_activities - この表では、私は 特定のイベントのためのイベントタイプ(それはおそらくイベントのクラス名になりますので、私は laravelを使用)し、ポイントを保存します。
      • activity_user - user_activitiesとusersの間のピボットテーブル。
      • そしてもちろんユーザーテーブルの

      ので、私は私は考えていないいくつかの条件があることを心配していますし、それが来て、将来的に私をかむだろう非常に簡単です。

  • 答えて

    0

    私はあなたには、単純に "活動"であると考えています。これは、単に活動の種類のリストです。これにはID列があり、user_activitiesテーブルにリンクする 'activity_id'が含まれています。長い名前:アプリケーション/ビジネスロジック ACTIVITY_NAMEの一部として使用する短いコード:laravel ACTIVITY_CODEごとに固有のID:あなたは間違いなく活動テーブルが

    IDのような列を有していてもよく、たとえば種類ごとに固有の情報を、持っていないだろうあなたはポイントがかもしれないと思われる場合はどのように多くのポイントこのイベントの

    など

    :どのようなユーザーは、活動賞 POINT_VALUEをトリガするためにしなければならないん EVENT「質問に答え」のようなものは、表示名のためであります将来(例えば、特定のユーザ活動を奨励するために)変更した場合、ユーザーアクティビティテーブルでその時点で付与された実際のポイントを追跡したい場合や、いつでもポイントが何であったかを追跡する方法があります。

    私は4番目の表を示唆していますが、本当に必要なのは、設計作業を行う前に実装する機能のリストです。時間の経過とともに変化するポイントを獲得できるようにする私の例は、あなたが言及していないような機能ですが、この機能が必要な場合には設計する必要があります。

    関連する問題