you should put all of your preference information into a single table rather than creating a new table for each category.
Also, having a column per category gives you the same issues as a table per category, the schema has to change each time you add a new category.
For table of category names and IDs, add rows to the preferences table per category per user, so each row in the preferences table has a userid, a categoryid, and a specific preference.
-- This message may have been cut off and the rest will only be shown to members. To become a member, click here --