The person you inherited from formatted the data correctly in my opinion. With the existing format, you can index all the data with a minimum number of indexes and quickly compile results. It can scale to any number of questions without having to modify the underlying data structure. It can also easily answer queries like, who missed one or more questions?

What you are trying to do is store the data as you see it, which is rarely a normalized data model. Your presentation layer should handle the formatting for the user. The model you are envisioning would also be difficult to query to determine missed questions.

I would use the presentation layer (i.e. Perl, PHP, Python, Ruby, Java, etc) to "pivot" the data for display. That's where you also add things like coloring to highlight errors or interesting information.

On Oct 19, 2005, at 3:24 PM, Jeffrey Goldberg wrote:

I suspect that this is the wrong list for this kind of question, but if someone could point me to appropriate sources, I would very much appreciate it.

I am new to SQL but inherited project designed by someone who doesn't seem answer his email anymore.

Essentially date were collected on the web using PHP inserting things into a MySQL data base. It took me time, but I now have a handle on what is in which of the 15 tables involved.

Each response to each question by each respondent produced its own record (row). That is, I have something like


     respondent_id    question_id  answer_id  answer_text
     ----------------------------------------------------

      23               201          56         NULL
      23               202          20         NULL
      23               203           1         NULL
      23               204        NULL         Arlington
      24               201          52         NULL
      24               202          21         NULL
      24               203           0         NULL
      24               204        NULL         Richmond


and so on for other respondent_ids as well.

What I would like to get for my users is something that looks like


respondent_id q201 q202 q203 ... ---------------------------------------------------------------------- - 23 text-for-ans56 text-for-ans20 text-for- answer1 ... 24 text-for-ans52 text-for-ans21 text-for- answer0 ...


So instead of having a record for each response, I'd like to have a single record for each respondent that shows all of that respondents responses.

For someone who knows SQL this should be easy.  I suspect that a

 group by respondent_id

clause will play a role, but I just don't see it.

As I said, references to books or sites that I should learn from would also be welcome.

-j




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql? [EMAIL PROTECTED]




--
Brent Baisley
Systems Architect
Landover Associates, Inc.
Search & Advisory Services for Advanced Technology Environments
p: 212.759.6400/800.759.0577



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to