Suppose I have n types of users in my application.
I am using an UserType enumeration to distinguish them.
UserType
Do I need to keep a table in
I would do that. I would create a separate table which contains all the possible usertypes. By doing so, you'll keep an eye on the integrity of your data at the DB level.
Why would it make your code somewhat complicated ? I do not understand that.