J'ai un formulaire de divulgation qui oblige un utilisateur à entrer des réponses oui/non pour une série d'environ 30 questions.Existe-t-il un meilleur moyen de structurer une table SQL traitant des questionnaires d'utilisateur?
Existe-t-il une meilleure façon de créer la table que d'avoir 30 colonnes qui correspondent aux questions? Ci-dessous est mon script MS-SQL, mais la question concerne plus la structure que la syntaxe.
CREATE TABLE Questionaire(
QuestionaireID int IDENTITY(1,1) NOT NULL,
UserID int NOT NULL,
Q1 bit NOT NULL,
Q2 bit NOT NULL,
Q3 bit NOT NULL,
... etc ...
... etc ...
Q30 bit NOT NULL
)
-- and to store the questions relating to Q1, Q2, etc...
CREATE TABLE Questions(
QuestionID int IDENTITY(1,1) NOT NULL,
Question varchar(30) NOT NULL
)
Quel est l'avantage de réduire l'utilisation de SQL? Vous l'avez déclaré comme donné. –
Merci. J'ai envisagé de stocker JSON/XML dans un champ, mais le reporting sur ces données serait difficile pour moi. Toutes les questions ont des réponses oui/non comme mentionné et toutes les réponses devraient être «non». Peut-être que la meilleure approche serait de stocker simplement des réponses «notables», c'est-à-dire lorsque l'utilisateur sélectionne «Oui» à une question. Alors ID, UserID, QuestionID suffirait? – Joshua
Cette réponse m'a aidé à arriver à la conclusion que je peux me contenter d'une table Question (QuestionID int, Question varchar (max)) et une table de réponse (ResponseID int, QuestionID int, UserID int, bit de réponse). – Joshua