if you are sure customers even need to log in?
Splitting to two tables would be my absolute last resort- everything else you mentioned is just roles of the authenticated user
Suppose you build a shop. You will need an internal system to manage employee, products, etc. And a public facing app for customer, they can search, sort, purchase, manage favorite items, etc.
In such a system, the "user" of both system is very different. They most likely also have hierarchy of their own.
user of the internal system is Employee, who could be Manager, Worker, Receptionist, Customer Support, etc. While user of public facing app may be bronze, silver, gold member, etc.
For these kind of system, do you split your users table to something like employees and customers, or do you manage it in the application level?
Please or to participate in this conversation.