I'm developping an application and I often ask myself the same question. 

For example, I have many types of user and in a form used to create a user, there is a dropdown to specify which type of user.

The best way to populate this dropdown is to store values in a database's table ? If I do this, when I develop I want to test type of user and I have only an int. But I thing it's a better practice to test with enum. So I create enum but I feel it's a bad practice because I have to keep database and enum synchronized.

Another question is about localization. If I put values in database, I can't use resource file.

Could you tell me good pratices about this ?

Thanks