This will allow you to have persistent settings that you can control. A configuration file can be used as a set of defaults, fallbacks, for any settings and will be merged into the settings. There is caching involved to keep the DB out of the equation as much as possible and only gets invalidated when changes have been made to the settings.