Probose 0 Newbie Poster

I'm modeling a database for a competition website. Each tournament will have a even number of contestants, and they will be randomly assigned to a one vs one match. Each match winner will go for the next phase and compete against another match winner, until the tournament ends.
I'm thinking about this:

User HABTM Tournament
Tournament hasMany Match
Match hasMany Match (is this wrong?)

Match has tournament_id, player1_id and player2_id columns.
This is the best approach I was able to come with, but I'm sure that there is a better way to do it.
Any suggestion?
Thanks :)
If it is not clear enough, let me know.