morph_master_flex
morph_master_flex

Reputation: 209

Necessity of auto-incrementing ID

Every implementation of a credentials table I've seen has an auto-incrmenting id to to track users.

However,

If I verify unique email addresses before inserting into a mySQL table, than I can guarantee the uniqueness of each row by email address...furthermore I can access the table as needed through the email address..

Does anyone see a problem with this?

I'm trying to understand why others don't follow this approach?

Upvotes: 0

Views: 64

Answers (2)

Joe
Joe

Reputation: 42627

When other tables have data that relates to users, what do you use as a foreign key? Their email address? What if they want to change their email address? What would have been a single one-row update now becomes a giant mess.

A generated key allows you to decouple data that can change from the relationships between records and tables.

Upvotes: 2

Doug McClean
Doug McClean

Reputation: 14485

Those email addresses are much larger than 4 bytes, perhaps even worse for the storage engine they are variable length.

Also one person might want two accounts, or might have several email addresses over time.

Then there are the problems associated with case folding.

Upvotes: 2

Related Questions