Per Niniel:
to be answered in the form of checkboxes, ie yes/no fields. I am not sure as
to where to put these. Should I make a separate table for each category,
throw them all together into 1 table, or not even put them into a separate
table at all?
My kneejerk reaction would be to put them all in one table... *IF* I were
reasonably sure there would never, ever, be more than 250 questions and if
I didn't expect to clone the app for other situations that might have more
questions.
OTOH, I suspect that the technically-correct approach from a database design
perspective would be something like one table for the responses - but with a
"QuestionID" field.
One person's responses would generate many records in this table: one for each
question. Then the QuestionID field would point to a lookup table containing
one record for each question.
One advantage to the more complicated design would be scalability. Now you can
cope with a virtually-unlimited number of questions on a survey.
The downsides would be in gathering and reporting.
On the gathering side, you'd have to do extra coding on the input form - maybe
build the checkboxes dynamically depending on the records in the lookup table.
On the reporting side there would likewise be more coding: maybe a pivot table
presentation of the data with dynamic assignment of column headings.
Manhour-wise, I'd think the diff between the two approaches would be rather
large - like maybe as much as 1:10.