Kenneth Fisher creates a diet version of db_ddladmin:
What if I want the user to be able to create VIEWS, TABLES, FUNCTIONS, etc. Basically, I want a db_ddladmin Jr. Something I can give to a developer that is focused on a single schema. Say the reporting schema.
The best practice is, of course, to use a role.
Click through for Kenneth’s script for a db_ddlcreator role.