Une section de notre site Web invite à poser à l'utilisateur 20 questions à choix multiple sur lui-même (un «profil»). Cette partie du site Web sera fréquemment consultée, et occasionnellement mise à jour. On s'attend à ce que le site Web développe une grande quantité de trafic, de sorte qu'on envisage d'essayer de se préparer aux problèmes de performance.Question de dénormalisation SQL Server - stockez les données utilisateur dans 1,3 ou 21 tables?
Les 3 façons que je peux voir pour stocker ceci dans le DB sont:
Créer une table pour chaque question, chaque table a QuestionID et réponse, puis une table CustomerInfo pour stocker les données de profil, avec clés étrangères mappées aux questions.
Tables Question, Question_Type et Réponses. Tout bourrer dans ces constructions. Ma préoccupation ici est en particulier la vingtaine d'insertions nécessaires pour mettre à jour un profil. Est-ce que cela va être un coup de performance à des volumes de trafic élevés?
Dénormaliser un seul tableau, un champ par question, coder en dur les codes de réponse dans le HTML et/ou dans un objet C#.
Je penche vers # 2 ou # 3. À votre avis, quelle serait la meilleure solution?