Re: Prescriptive design rules



On Aug 29, 4:20 pm, "Evan Keel" <evank...@xxxxxxxxxxxxx> 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 spread*** 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.

.