There is hardly any difference, except the waste of space for the state_id. But purists will tell you, that you should not put business information into primary key columns, and therefore state_code should not be a primary key. And if a state is gets a new code, it is much easier to change your data if state_code is not PK/FK....
Rgds, Bjørn. On Wednesday 17 April 2002 19:18, Grabowy, Chris wrote: > To simplify my question, if I am creating a STATE table to hold all the > states of the US, should I create it like this... > > Name Null? Type > ----------------------------------------- -------- > ---------------------------- > STATE_CODE NOT NULL CHAR(2) <-- PK > > STATE_DESC NOT NULL VARCHAR2(50) > > or like this... > > Name Null? Type > ----------------------------------------- -------- > ---------------------------- > STATE_ID NOT NULL NUMBER <-- PK > STATE_CODE NOT NULL CHAR(2) > STATE_DESC NOT NULL VARCHAR2(50) > > I'm trying to figure out which is more efficient, STATE_CODE or STATE_ID, > when doing a PK lookup, dealing with FKs, etc. > > Many TIA!!! > > Chris -- Bjørn Engsig, Miracle A/S http://MiracleAS.dk -- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: =?iso-8859-1?q?Bj=F8rn=20Engsig?= INET: [EMAIL PROTECTED] 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: [EMAIL PROTECTED] (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).