• Lynn Pettis (3/10/2010)


    Personally, I think every table should have a surrogate key as either a Primary Key (PK) or Alternate Key (AK). Especially when using a natural key for the PK. You never know when a requirement change could result in a natural key no longer being a valid PK. By having a surrogate key as an AK, you still have a way to uniquely identify each and every record in the table.

    And sometimes, when space occupied by pointers into the table is less important than other considerations (such as space occupied by this table, perhaps), it's good to tack the surrogate key column onto the end of the compound primary key so that it will always remain unique. Not something that makes sense often, but in the rare cases when it does make sense it can give quite a boost.

    Tom