Using Natural Keys

Why?

I have seen a lot of very experienced DBA's argue that natural keys are, well, simply more "natural" and make sense in a lot of cases.

My premise is that these three tables are so insignificant and contrived, why not?

If I was Amazon . com, though, I certainly wouldn't be doing that!

Just trying to learn better from someone with 30+ yrs experience. :slight_smile:

Again, why?

The approach I have taken more in recent years is what you saw above...

Every table has a surrogate key using an sequence/autonumber/whatever to ensure uniqueness always. However, I set this with a UK constraint versus a PK.

Then, for tables where it has practical application, and won't come back to bite me, I use a natural key as a pk.

For the junction table, I have a surrgate key but this time make it the pk just so the table has that guaranteed uniqueness again.

Truth be told, this is for a website and I am using MySQL. (Not sure if this is a Microsoft-only website?)

Do you know if I can do Views in MySQL?

I know lots of database gurus that wouldn't see it as a mortal sin to use natural keys as the primary keys in my parent tables and then have the natural keys be the co-foreign keys in the junction table.

Again, can you explain why you feel this is a bad idea?

Look at the context...

It's not like I am using Address or Last Name as the natural key!

Thanks.