Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Design question: EFFECTIVE_?_DATE in a RATE table...
Chris,
Why do you want RATE_EFFECTIVE_END_DATE in your PK?
Having it as a part PK will require constant modifications to PK (which is
not very good idea).
(RATE_CODE, RATE_EFFECTIVE_START_DATE) should be enough to uniquely identify
a record.
I understand, that to get "current" rate you need both "start" and "end"
dates, which will lead to additional index (in addition to PK, if "end_date"
isn't part of PK). But, it seems to be less evil, than constant
modifications of PK.
As for NULLs in RATE_EFFECTIVE_END_DATE, I'd rather assign some date in
future (like "01/01/4000") for "current" rate, when new record created (and
modify it to "sysdate" when rate becomes "old"). Thus avoiding "IS NULL"
when querying this column (where RATE_EFFECTIVE_END_DATE < "01/01/4000" for
current rate).
Igor Neyman, OCP DBA
ineyman_at_perceptron.com
> Hi Chris,
>
> I've seen this type of design before. Are you going to be storing
> historical rates? It kind of looks like it.
>
> What I've seen that kills the queries is queries for current rates wanting
> 'and RATE_EFFECTIVE_END_DATE IS NULL'. This was on data that was a subset
> of an airline GDS. (Fairly good sized database with poor design)
>
> If you are not storing historical rate codes, why would you even need the
> end_date? I would think if you are going to need history, you need the
> end_date and I don't think you can get around it.
>
> Just a thought, fwiw
>
> Lisa Koivu
> Oracle Database Administrator
> Fairfield Resorts, Inc.
> 5259 Coconut Creek Parkway
> Ft. Lauderdale, FL, USA 33063
> Office: 954-935-4117
> Cell: 954-309-4157
>
>
>
>
> > -----Original Message-----
> > From: Grabowy, Chris [SMTP:cgrabowy_at_fcg.com]
> > Sent: Monday, April 22, 2002 7:55 PM
> > To: Multiple recipients of list ORACLE-L
> > Subject: Design question: EFFECTIVE_?_DATE in a RATE table...
> >
> > A design question, my RATE table looks something like this....
> >
> > SQL> desc rate
> > Name
> > Null? Type
>
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: Igor Neyman INET: ineyman_at_perceptron.com Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing Lists -------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Tue Apr 23 2002 - 14:03:30 CDT
![]() |
![]() |