Je suis en train de mettre en place un système de concours dans lequel l'utilisateur doit choisir la bonne réponse à plusieurs questions. Chaque semaine, il y a une nouvelle série de questions. J'essaie de trouver la bonne façon de stocker les participations des utilisateurs dans une base de données. En ce moment j'ai le modèle de données suivantes:Comment normaliser une association entre des participations hebdomadaires et des questions hebdomadaires?
Participation Week
+--------------+ +--------------+
| Id | +----------->| Id |<-+
| UserId | | | StartDate | |
| WeekId |-----+ +--------------+ |
+--------------+ |
Question |
+--------------+ |
| Id | |
| WeekId |--+
| Text |
+--------------+
La seule solution que je suis venu avec est d'ajouter une table réponse qui associe une participation à une question, comme il est indiqué dans le schéma suivant:
Participation Week
+--------------+ +--------------+
+->| Id | +----------->| Id |<-+
| | UserId | | | StartDate | |
| | WeekId |-----+ +--------------+ |
| +--------------+ |
| Question |
| Answer +--------------+ |
| +------------------+ +---->| Id | |
+------| ParticipationId | | | WeekId |--+
| QuestionId |----+ | Text |
| Value | +--------------+
+------------------+
Je ne relie pas cette solution est très bonne, car elle permet à une participation d'avoir des réponses à des questions d'une semaine différente. Ajouter le WeekId à la réponse n'aide pas.
Quelle est la bonne façon de représenter cette information?
Cela n'empêche pas la même participation d'avoir des réponses de différentes semaines. –