Hello. First time poster here who is trying to get back into databases after a couple year hiatus!
I realize this is a heated topic, but am hoping to get some reasonable advice on it...
A lot of people insist that you have to use System-generated/Sequence/AutoNumber/Surrogate keys as the primary key for a table.
While I can see the benefits if you have a very large table, for smaller tables I question the need.
For example, I have the following tiny tables in a website I am building... (**Disclosure: This is in MySQL, so hope you won't hate on me for that?!)
FEATURE
*************
- id (current pk)
- name
MEMBER_PLAN
- id (current pk)
- name
ENTITLEMENT
*******************
- id (pk)
- feature_id (fk)
- member_plan_id (fk)
In the first two tables, I am inclined to make "id" a (uk) and make "name" the (pk).
Why?
Because then in my junction table (i.e. Entitlement), it will be self-documenting and won't require me to join three tables for simple things I need to do!!
Thoughts?