Design pattern for ongoing survey anayisis
On the analysis, if your six questions have been posed in a way that would lead you to believe the answers will be correlated, consider conducting a factor analysis on the raw scores first.   Often comparing the factors across regions or customer type has more statistical power than comparing across questions alone.   Also, the factor scores are more likely to be normally distributed (they are the weighted sum of 6 observations) while the six questions alone would not.   This allows you to apply t-tests based on the normal distibution when comparing factor scores. 
One watchout, though.  If you assign numeric values to answers - 1 = much worse, 2 = worse, etc. you are implying that the distance between much worse and worse is the same as the distance between worse and same.  This is generally not true - you might really have to screw up to get a vote of "much worse" while just being a passive screw up might get you a "worse" score.  So the assignment of cardinal (numerics) to ordinal (ordering) has a bias of its own. 
The unequal number of participants per quarter isn't a problem - there are statistical t-tests that deal with unequal sample sizes.
I'm doing an ongoing survey, every quarter. We get people to sign up (where they give extensive demographic info). 
Then we get them to answer six short questions with 5 possible values much worse, worse, same, better, much better. 
Of course over time we will not get the same participants,, some will drop out and some new ones will sign up,, so I'm trying to decide how to best build a db and code (hope to use Python, Numpy?) to best allow for ongoing collection and analysis by the various categories defined by the initial demographic data..As of now we have 700 or so participants, so the dataset is not too big.
I.E.;
demographic, UID,  North, south, residential. commercial Then answer for 6 questions for Q1
Same for Q2 and so on,, then need  able to slice dice and average the values for the quarterly answers by the various demographics to see trends over time. 
The averaging, grouping and so forth is modestly complicated by having differing participants each quarter
Any pointers to design patterns for this sort of DB? and analysis? Is this a sparse matrix?