Conceptually, yes, it is a good idea not to generate artificial unique keys (or at least restrict these instances). And e-mail serves this natural unique key purpose.
However , one thing I'll worry about is performance. Having an integer as an identifier is quite convenient when executing queries, and itโs much faster to search in those long strings ... It doesnโt matter if you simply retrieve the user from the database using the email address. But it matters if you have complex queries with multiple joins.
In addition, if you store customer information in multiple tables, the foreign keys to another table will be the email address. This means that you store the email address several times, which will make it much more difficult if everything is updated, if the client decides to change his email sometime.
source share