これを構成する正しい方法に頭を悩ませています...
コンテストの審査機能を備えたイベント管理アプリケーションを構築しています。複数のラウンドがあり、それぞれ複数の審査員と複数の参加者がいます。任意のジャッジが複数のラウンドでジャッジすることができ、任意の参加者が複数のラウンドに参加することができます。ただし、各ラウンドのスコアは、参加者 1 人、審査員 1 人につき 1 つだけです。
次のテーブルを作成しました。
- user
- user_id
- user_name
- user_role_id
- user_role
- user_role_id
- user_role_name
- user_role_desc
- round
- round_id
- round_name
- round_loc
- user_round (to join many-to-many users and rounds)
- user_id
- round_id
- score
- score_id
- score_value
- round_id
- user_id_judge
- user_id_participant
user_role は、審査員、参加者、管理者、サポートなどを定義します。次に、ロールが割り当てられた 1 つのテーブルにすべてのユーザーを配置します。これが混乱の原因です。たとえば、スコアを定義する場合、これは、ユーザー テーブルから 2 つのキーを含めて、審査員と参加者の両方を定義する必要があることを意味します。私が考えていないこれを行うことに問題はありますか?最初は審査員テーブルと参加者テーブルを別々にするつもりでしたが、現在の構造は「正しい方法」に沿ったものになっていると思いました。私は他に何を考えていませんか?