Re: Prescriptive design rules

From: <Doug_McMahon_at_yahoo.com>
Date: Tue, 04 Sep 2007 15:38:48 -0700
Message-ID: <1188945528.688113.24310_at_y42g2000hsy.googlegroups.com>


On Aug 29, 4:20 pm, "Evan Keel" <evank..._at_sbcglobal.net> wrote:
> This is a post from comp.databases.mysql:
>
> <<let's say I want to ask a survey question, with checkboxes:
>
> What animals do you like?
> [] giraffe
> [] elephant
> [] donkey
> ...
>
> I'd possibly create a single column named "like" and store each
> response as a comma delimited string:
> giraffe,donkey
> elephant,donkey
> etc
>
> But further, let's say I have a question with checkboxes and also
> radio buttons:
>
> Please select which animals you own, and tell us how much you like
> each:
>
> [] cat () low () medium () high
> [] dog () low () medium () high
> [] rat () low () medium () high
> ...
>
> What's the best table design to store that? E.g., I could have a
> column named "own" and another column named "rate". Or I could have a
> column named "cat" which might contain:
> yes,low
>
> and another column named "dog" which might contain:
> no
>
> and another column named "rat" which might contain:
> yes,high
>
> etc. But neither of those seems quite right to me.
>
> I'm obviously thinking of using one flat table for the whole survey,
> is that a very wrong thing to do? I'm assuming that using a flat table
> will naturally make it easier to export in spreadsheet format. I'm
> also not concerned about the memory usage of a flat file.>>
>
> If you could provide 10 prescriptive design rules to a front-end developer,
> what would they be? Or just 5?
>

> Evan

What's wrong with a table keyed by PERSON and ANIMAL with payload columns for OWNS and RATING? OWNS could be a quantity, 0 if the person doesn't own any, 1 or more if he/she owns some number of the animal. The RATING could be a string drawn from the domain "high" "medium" "low", or a number from 1-3. Animals that the person didn't rate and didn't own could be omitted. Animals that the person owned but did not rate could be given avalue to indicate "unrated", for example you could agree that the empty string (which is not the same as a null) is what's used if the person did not supply a rating. Received on Wed Sep 05 2007 - 00:38:48 CEST

Original text of this message