First, let me say that Steve's answer is spot on. The "right" answer is whatever works for your team. Now here comes my highly opinionated answer...
Work should never be assigned to anyone. It is the responsibility of the team to get the work done. Therefore, the correct time to attach a name to a ticket is just before work begins on an item. Team members should pull work into the queue (in priority order!) as they personally have the bandwidth to do so. Anything else is a team smell in my opinion.
The problem with assigning any work to team members any earlier than this is that you run the risk of a single team member becoming overloaded while others are idle, which results in your team not getting all their work done. If people pull new work in (again, in priority order!) as they finish their last item, then you maximize the team's throughput.
Of course, this assumes a team full of T shaped people. Falling back on "do what's right for your team", it's ok for the team to decide that Joe is best suited to add that new widget to the database, but be wary of this behavior and don't formalize it less you slip down a slippery slope.