4

私たちは、NGO ( N ) が個人ボランティア ( V ) または会社を通じてボランティア ( C )を介して活動を行うためのプラットフォームを開発しています。

NGO

  1. NGO は、アカウントにサインアップしてプロフィールを作成できます。
  2. 個人のボランティアまたは会社 (システムにボランティアとして登録されている従業員のサブセット) が適用できるアクティビティ (ボランティアの助けが必要な仕事) を作成します。
  3. NGO は、申請者のプロファイルと以前の職歴を確認し、申請を受け入れることができます。受け入れられると、アクティビティのメンバーになります。
  4. ここでは、一定の間隔で 2 週間働いている間、その特定の活動に貢献した時間を入力する必要があります。
  5. NGO は、ボランティアのプロフィールにクレジットとして反映できるように、この時間を検証する必要があります。

会社

  1. プロファイルの会社サインアップ。
  2. すべての従業員のリストを特定の形式の CSV ファイルにアップロードして、それ自体に対してボランティアを追加するか、招待リンクを送信して従業員にサインアップを依頼します。従業員がシステムに既に存在する場合は、会社の主張を検証するように依頼する電子メールを送信します。
  3. 会社は、特定のタスクを検索し、すべての従業員またはそのサブセットを選択して、それに適用できます。
  4. 完了した作業の時間を検証しながら、2 つの方法で実行できます。1会社は、V1 V2 V3 が 2 時間、3 時間、2 時間完了したことを一元的に宣言し、NGO からの検証のために提出するか、各従業員がこれを手動で処理して提出できるようにすることができます。

どこで助けが必要ですか?

私は NGO と単一のボランティア関係を作成しました。同じテーブルを使用する方法について混乱していますが、会社のような新しいエンティティが NGO とボランティアの間に入り、時間の検証と活動管理を管理できます。

検証された時間は、NGO、会社、およびボランティアの社会的平等のバランス (個人の仕事および会社を通じて大義のために働いた) を示すために使用されるため、非常に重要です。

NGO とボランティア用に以下の ER 図を作成しましたが、その中に会社の部分を作成する必要があります。

ここに画像の説明を入力 リンク: http://i.stack.imgur.com/OMY21.png

4

1 に答える 1

3

スキーマを大幅に変更する必要があるか、まったく変更する必要があるかどうかはわかりません。スキーマでは、何かを行うためにアプリケーションを使用する必要があります。ここですべてのロジックを実装することはできません。その一部/ほとんどはアプリケーションに含まれます。

私が理解しているように、あなたの仕様によると、実際のボランティア活動はすべて個人によって行われており、その中には会社に関連付けられている人もいれば、そうでない人もいます。あなたのスキーマはすでにこれをキャプチャしています。

それだけで十分だと思います。あなたが言う時:

完了した作業の時間を検証しながら、2 つの方法で実行できます。1 会社は、V1 V2 V3 が 2 時間、3 時間、2 時間完了したことを一元的に宣言し、NGO からの検証のために提出するか、各従業員がこれを手動で処理して提出できるようにすることができます。

これはすでに説明されています。各個人が自分の作業記録を入力するか、アプリケーションが会社に入力を許可します。次に、誰が入力したかに関係なく、NGO がこれらの記録を同じ方法で検証します。

私は NGO と単一のボランティア関係を作成しました。同じテーブルを使用する方法について混乱していますが、会社のような新しいエンティティが NGO とボランティアの間に入り、時間の検証と活動管理を管理できます。

すべてがカバーされていることを確認するために、実際の例を見て両方の使用例を説明しましょう。

実施例

個人、会社なし

個人がサインアップし、volunteersテーブルに行を作成します。彼らはアクティビティにサインアップし、ngo_activity_applicationsテーブルに行を作成します。

NGO はそれらを承認し、表に行を作成し、ngo_activity_members表の行を削除するか、仕様ngo_activity_applicationsを変更します。status不明です。

個人が何らかの作業を行い、時間をアプリに記録して、ngo_activity_time_validationsテーブルに行を作成します。

NGO は何らかの形で行われた作業を検証し、それをアプリに伝えます。これにより、おそらくテーブル内の行のステータスが変更され、ngo_activity_time_validationsテーブル内に 1 つの集計行または一致する行が作成されvolunteer_validated_timesます。仕様が不明ですが、どこcost_per_hourから来たのですか?

会社

会社がサインアップし、3 人のボランティアが含まれる CSV ファイルをアップロードします。これにより、テーブルに行が 1 つ作成され、companiesさらにテーブルに 3 つの行が作成volunteersされ、company_volunteersリンク テーブルに 3 つの行が作成されます。

Company Volunteer 1 が活動に個別にサインアップし、すべてが上記のように進行します。

会社は別の活動にサインアップし、3 人全員がその活動に参加することを志願しました。これにより、ngo_activity_applicationsテーブルに 3 つの行が作成されます。

NGO は 3 つすべてを承認し、テーブルに 3 つの新しい行を作成し、ngo_activity_membersテーブルの行を削除するか、仕様ngo_activity_applicationsを変更します。status不明です。

ボランティアはいくつかの作業を行い、会社は会社のボランティア 1 と 2 に代わってアプリに時間を記録し、会社のボランティア 3 は自分の時間を記録します。

会社のボランティア 1 および 2 会社は、アプリケーションを使用して時間を記録し、テーブルに 2 つの行を作成しngo_activity_time_validationsます。

Company Volunteer 3 Company Volunteer 3 は、アプリケーションを使用して自分の時間を記録し、ngo_activity_time_validationsテーブルに行を作成します。

NGO は何らかの形で行われた作業を検証し、それをアプリに伝えます。これにより、おそらくテーブル内の行のステータスが変更され、ngo_activity_time_validationsテーブル内に 1 つの集計行または一致する行が作成されvolunteer_validated_timesます。仕様が不明ですが、どこcost_per_hourから来たのですか?

概要

volunteer_validated_timesテーブルにクエリJOINを実行することで、個人がログに記録した検証済み時間を確認できvolunteersます。同じクエリを実行するだけでなく、テーブルに結合することで、会社がログに記録した検証済み時間を確認することもできcompany_volunteersます。

可能な変更と質問:

個人が入力したレコードと、会社が個人に代わって入力したレコードを区別できるようcompany_enteredに、テーブルにフラグを追加することができます。ngp_activity_time_validationsアプリケーションに関連するログを記録する場合は、このテーブルにエントリを作成した人物の ID を追加することもできます。

テーブルに行を作成するときにデフォルトとして使用するためhourly_rateに、テーブルに列を追加したい場合があります。volunteerscost_per_hourvolunteer_validated_times

于 2013-05-21T23:31:26.357 に答える