Say my database tables have columns like UserType, SalesType, etc.
Should I have database tables with UserTypeID, userTy
What's wrong with both? If value's are user-defined or changing, definitely enum will not be suitable.
If values are strictly non-changing (such as gender), you can have them as enums for ease of reference in the application and also in the DB as separate table to enforce foreign keys and as a reference.