Long forms - DB Design question

So I need to design a DB which will store the answers from a 20 page long form from a couple thousand users…
Some answers might be multiple choice some others will be free text…

If I set up a table (ANSWERS) with one column for each question with text (or integer as the data type for the multiple choice choice value answered) I will end up with a table with more than 100 columns… with long names that looks and sounds wrong to me…

The other approach I thought consists of a table (ANSWERS) with three columns (QuestionID, Answer, UserProfilID). So there it will hold one row for each answer. If I go this way, every completed form will be equal to (approx) 100 rows… 100 rows*a couple thousand users… hmm… is that too much ?
Also if I take this second approach the select will return 100 records for each answer, that might require more coding to display the answes in the GUI…

Help me to find the best way to do this… Never worked with forms this long…

table schema

  • UserID
  • Question #
  • Answer

3 columns
it is better to have a million rows for 100,000 questionaries than 100,000 records with 100 columns each.

and a relational table for the questions and another for the actual answer (if multiple choice)

Thanks Dave