SQL データベースのテーブル/フィールドに最適な編成を見つけようとしています。
製品の機能について説明します。私の組織は、毎日異なる時間に週 5 日、ボランティア サービスを予定しています。ユーザーがログインし、ボランティア活動の日時を選択し、選択した時間にボランティア登録できるようにするプログラムを作成しています。ユーザーは、ボランティアの人数と車の台数を選択します。ボランティアの外出ごとに最低2台の車と3人がいます。ユーザーは承認済みリストに含まれている必要があります。
このすべてのデータを最適に整理する方法がわかりません。車の番号とボランティアの人数のフィールドをユーザー テーブルに追加できません。これは、サインアップする日によって変わる可能性があるためです。
私の現在の考え(悪い):
VolunteerOutings テーブル
- DateTime time
- Array of userIds (will be used to access CarVolunteerInfo)
ユーザー テーブル
- int userId
- varchar email
- varchar pass
CarVolunteerInfo テーブル
- DateTime time
- int userId
- int car #
- int volunteer #
1回の外出に複数人で申し込めますが、外出ごとに誰が申し込んでいて、何を持ってきているかを確認できるようにしたいです。また、レポートを実行して、サインアップした過去および将来の外出をすべて確認できるようにしたいと考えています。
この質問が漠然としていたり、理論的すぎる場合は申し訳ありません。ご要望に応じて質問を改善させていただきます。