process form menus in a single big transaction instead of a transaction for each edit to avoid validation errors with missing fields
add an index on characters.name