Database table structure for user settings

2019-02-16 00:28发布

问题:

I need to add a table to store user settings. For the first time users will have about 10 different settings, but I'm sure there will be more.

What scalable structure of database table to store user settings would you suggest?

Any help would be greatly appreciated.

Thank you!

回答1:

Settings table columns -: setting_id | setting_code | setting_name | setting_description

User table columns -: user_id | user_name | user_password | etcetera

User-settings table columns -: user_setting_id | user_id_fk | setting_code_fk | setting_value

structure like so:

Users --> User Settings <---- Settings

Hope this helps.



回答2:

Depends on the settings.
If it's just flags, you can use bit mask.

If it's strings - just make separate fields.
Do not make it "scalable". Databases must be scalable in length (and they are), not in width.
Just plan your database structure before starting a code.

If it will be poor plan - OK, you can add a few fields later. But do not make it on regular basis. It's a sign of poor database design.