私は現在、(イベントのボランティアスタッフ配置用の)スケジューリングWebアプリを構築する計画段階にあり、経験豊富な人に質問があります。
背景:イベントのカレンダーがあり、いつでもすべてのユーザーが任意のイベントに登録できます。後で、そのイベントの前に、管理者の1人がステップインして、登録したものから「スタッフリスト」を選択し、残りは「代替リスト」に入れられます。
これまで私が考えていたのは、Eventテーブル、Userテーブル、そして他に3つのテーブルがあるということです。
- UserEvent
- ユーザーを登録したイベントにマップします。スタッフまたはAltリストのメンバーシップを意味するものではありません。
- UserStaff
- ユーザーを登録したイベントにマップし、たまたまスタッフを配置します。
- UserAlt
- UserStaffに似ています
次に、質問は2つの部分になります。
- これはそれを行うための良い方法ですか?
- これらの3つの関連テーブルのそれぞれに、ユーザーIDとイベントIDを含める必要がありますか?
その2番目の質問は本当に私が議論してもらいたいものです。これは重複したマテリアルが多いように思われるため(UserStaffまたはUserAltのすべてが常にUserEventに含まれる)、複合キーに加えて、他のテーブル(UserStaffおよびUserAlt)が参照します。プラス面では、重複するコンテンツが少なくなり、マイナス面では、この方法でほとんどすべてのクエリで参照する必要がある中間テーブル(UserEvent)があります。
うまくいけば、私は十分に明確になりました、そして事前に感謝します。