First step would be to create all the questions that will be in the survey, then create a database table to house them all.
Next (at least, this is how I would do it) would be to create the form(s) that will be taking the user input. If there will be more than one page, of questions, you can put everything in tabbed order on one page, or you can have several pages, each submitting to the next. How you process the data will depend upon this decision.
Then, create the database tables that will store the responses and the identifying information (names, etc.)
CFQUERY makes it easy to retrieve and insert/edit the values.
Do you have experience designing/developing/querying relational table databases? Which will you use: MS-SQL Server, MySQL, Oracle?