It seems to me that a certain type of value does not actually belong to many, many relationships. If a specific property value is specific to each user, then it looks like it should be a separate table. He "feels" how there would be a 1-lot relationship from user to another table that has preferences unique to each user.
Edit: for a table from 1 to many:
user_specific_prefs ------ id user_id pref_name (or possibly pref_id that indicates the type) pref_value (store www.myhome.com for example)
User_id is only a foreign key for a specific user. This is essentially (in a logical sense) adding extra columns to the user table. But, as Andomar points out, this adds to the complexity. But if you have so many preferences, that might be good. On the other hand, I saw tables with hundreds of columns. I am not saying that this is good (and I did not create them), but they do their job and are easy to use.
source share