<p>When I make a query, I often wonder about this:</p>
<blockquote>
<p>Is it better to add extra field(s) to
the table, or just get the values and
calculate in your server side
language?</p>
</blockquote>
<p>For example, table Student contains Student.score field. I want to get the grades.</p>
<blockquote>
<p>Do I get the score and make a bunch of
if/else/switch for the grades?</p>
<p>Do I <strong>waste</strong> space by adding a field just to store
something that is dependent on another
field?</p>
</blockquote>
<p>The former is annoying to do everytime you need the grades.
The latter scares me when I think of space usage. If I have as small as 10,000 records then I've already wasted 10,000 fields!</p>
<p>Which is the most efficient method, considering non-trivial tables and medium to big database size?</p>
<p>If it matters lets use PHP as the server side language.</p>

Your data persistence layer should generally not store calculated values that are subject to frequent change. To do so creates the risk of allowing stagnant data to persist within the data store and then affect the business layer which will in turn affect everything else.
Generally speaking you always want to produce calculated values at run-time.
However, I wouldn't worry about a single additional field within the database when determining the best way to address any design issue. Hard drive space is both cheap and plentiful. :-)