How long is a piece of string?
The table should have enough attributes to describe the entity being
modeled. Are user characteristics separate from user preferences?
Probably, but i don't know.
> Is there a maximum to how many attributes a table should have?
Typically tables are limited to a maximum number of attributes. You
would need to check the specifics of yours db.
> Should I, for example, put all the user characteristics
> and preferences in one table or should I split it in
> multiple tables.
It depends on what trade-offs you are willing to accept. One table is
probably the easiest, at least initially, but might limit your
flexibility. Multiple tables may allow you to reduce data redundancy
and provide more flexibility in the long run but at the cost of
additional complexity.