There's nothing inherently wrong with having a lot of tables. If you run into problems with joins being too slow, you could look into various forms of caching, including caching in a de-normalized table. Don't do that until you actually hit performance problems though.