私は大学の学生クラブのウェブサイトのデータモデルを構築していますが、これまでのところについてフィードバックが必要です。
学期ごとに会費を払って会員になります。この会費は、その期間中の社交行事を除いたクラブのすべての活動に参加する権利を彼らに与えます。これらの社交イベントに参加するには、チケットを購入する必要があります。
クラブの活動には、毎週8〜10回のクラスのコース、ワークショップ、および前述のイベントが含まれていました。
学期ごとにメンバーをモデル化し、コース(登録のみ)、個別のクラス(出席)、ワークショップ(出席と登録)、およびイベント(出席と登録)への登録と出席を追跡できるようにしたいと考えています。
幹部のどのメンバーがどの活動に関与したかを確認できるようにしたいと思います。
エグゼクティブが記事(テキスト)、写真、音楽、ビデオをアップロードし、これらのアイテムにアクセスできるユーザーを制御できるようにする必要があります。ユーザー/コンテンツレベルでアクセスを許可するのは面倒だと思うので、グループソリューションを使用しました。
ご覧になり、フィードバックをお寄せください。私は、保守と新しい要件への適応が容易で、クラブとメンバーの活動のモデリングに関して堅牢で柔軟なモデルを設計しようとしています。
パスワードハッシュは、学生エンティティの一部になります。現在、図には表示されていません。
下の図をご覧ください。
編集1:
凡例を追加しました。
上部のStudent--Membership--Termの周りの長方形は集計と呼ばれます。これは、たとえば、関係登録で使用する場合、この集計を主キー(student_id、term)を持つエンティティと見なすことができることを意味します。
EDIT2:ISAラベルが付いた三角形は、最上位のエンティティが子エンティティに特殊化されていることを示します。スキーマに変換する場合、それぞれのリレーションを作成するか、子のみを作成するかを選択できます。