Any recommendation on the use of serials vs. varchars as primary keys for code tables? By code table, I mean a small table containing a few application values that is foreign keyed by a table containing user data. I currently have something like: Table "public.education_codes" Column | Type | Modifiers | Description ----------------+-----------------------+-----------+----------------------- education | smallint | not null | display_string | character varying(50) | not null | display value short_name | character varying(15) | not null | alias for use in code Indexes: "education_codes_pkey" PRIMARY KEY, btree (education) "education_codes_short_name_key" UNIQUE, btree (short_name) Table "public.my_table" Column | Type | Modifiers ------------------------+-----------------------------+----------------- education | smallint | some_other_cols | text | Indexes: "fki_education" btree (education) Foreign-key constraints: education_codes(education) ON UPDATE CASCADE ON DELETE SET NULL petetest=# select * from education_codes; education | display_string | short_name -----------+-----------------------+-------------- 1 | Associate's Degree | ASSOCIATE 2 | Bachelor's Degree | BACHELORS 3 | Doctorate | DOCTORATE 4 | High School or G.E.D. | HIGHSCHOOL 6 | Masters | MASTERS 7 | Some College | SOMECOLLEGE 9 | M.B.A. | MBA 10 | M.F.A. | MFA 12 | Other | OTHER 8 | J.D. | JD 5 | Less than High School | NOHIGHSCHOOL 11 | Vocational Degree | VOCATIONAL (12 rows) I use short_name in my application - it's easier to debug/inspect/code (as there's a human-readable string instead of an integer) and convert to a smallint (education) when inserting into my_table. Now it seems that short_name could just as easily be used as the pkey on education_codes. I went the serial initially route b/c I thought it would be faster and to reduce space used by my_table, which may have 100's of millions of rows down the road. Are these good reasons? I'm thinking about switching to using the varchar col as the pkey/fkey just to make my coding easier. How do people do this sort of thing? TIA. --Pete -- Peter Fein pfein@xxxxxxxxx 773-575-0694 Basically, if you're not a utopianist, you're a schmuck. -J. Feldman ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings