Yeah, you might also want to inlcude the following quantities: retail price, whole sale price, wholesaler, availability
if this is more of a general purpose dbase.
As far as a description, you don't want several columns, or sub-columns for your data. Have just one for your description, and if you need to be able to output it in an ordereded list, simply seperate each item with a special character. Then when you need to print the list on the page, do a str_replace on your string, and replace your special character with "</li><li>".
EG:
The field description looks like this:
"compact:affordable:quality"
Then the code would look like this:
$result = mysql_query("SELECT * FROM product WHERE product_id='3'");
if( mysql_num_rows($result) > 0 )
{
echo("<ul><li>");
}
while( $row = mysql_fetch_array($result) )
{
echo( str_replace(":", "</li><li>", $row[description]) );
}
if( mysql_num_rows($result) > 0 )
{
echo("</li></ul>");
}
If you absolutely must have seperate fields for each part of the description, create a 2 columned table with the column 1 being id's of products, and column 2 being the descriptions. So if product 134 has 3 description items, the table would look like:
134 | cheap
134 | reliable
134 | blah
and you can do a simple join to get the description items.
HTH