"H L" <[EMAIL PROTECTED]> wrote on 04/03/2006 01:53:37 PM:

> 
> >The solution is to redesign your tables. You need to split into 
separate
> >columns the values you want to maintain. You do not want to keep the 
"flat
> >file" design you are currently trying to use.
> >
> >CREATE TABLE calendar (
> >   objectid,
> >   year,
> >   dayofyear,
> >   ... other fields...
> >)
> >
> >CREATE TABLE price (
> >   objectid,
> >   year,
> >   dayofyear,
> >   price
> >)
> >
> >Having a separate column for each day of the year may make sense to a
> >person but as you have discovered, it is extremely difficult to use for
> >any kind of ad-hoc querying.  A more normalized data structure will be
> >almost as efficient in space usage but 1000s of times more efficient 
for
> >querying.  There is no simple way to write a query that spans years 
with
> >the table structures you currently have.
> >
> >Shawn Green
> >Database Administrator
> >Unimin Corporation - Spruce Pine
> 
> 
> Hi thanks for the quick response!
> 
> Well i think you are right about this. I will probably have to redesign 
the 
> database. What do you think of using DATE instead of year,dayofyear or 
is 
> there problems i could get into then.  It would be great to be able to 
use 
> select from price where date>=somedate AND date <= tosomedate
> 
> /Henrik
> 

You could use a single date column for (year, Julian date) but if you are 
constantly querying on the Julian date (based on your application or other 
needs) then having that column would be a good thing. Without a column for 
Julian date, you could not index that value either by itself or as part of 
another index.   Which way works better for you really depends on *your* 
application's needs and I cannot guess all of them. However, you really 
should normalize that data first.

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine



Reply via email to