我正在实施一个竞赛系统,用户必须在其中选择多个问题的正确答案。每周都有一组新问题。我正在尝试找到将用户参与存储在数据库中的正确方法。现在我有以下数据模型:
Participation Week
+--------------+ +--------------+
| Id | +----------->| Id |<-+
| UserId | | | StartDate | |
| WeekId |-----+ +--------------+ |
+--------------+ |
Question |
+--------------+ |
| Id | |
| WeekId |--+
| Text |
+--------------+
我想出的唯一解决方案是添加一个将参与与问题相关联的答案表,如下图所示:
Participation Week
+--------------+ +--------------+
+->| Id | +----------->| Id |<-+
| | UserId | | | StartDate | |
| | WeekId |-----+ +--------------+ |
| +--------------+ |
| Question |
| Answer +--------------+ |
| +------------------+ +---->| Id | |
+------| ParticipationId | | | WeekId |--+
| QuestionId |----+ | Text |
| Value | +--------------+
+------------------+
我不链接这个解决方案非常好,因为它允许参与者回答来自不同周的问题。将 WeekId 添加到答案中没有帮助。
表示此信息的正确方法是什么?