How should I structure my settings table with MySQL?

database, mysql, organization

Solution

Table name = 'settings'

name  | varchar <-- primary key
value | varchar

Then you can query like this:

SELECT * FROM settings WHERE name = 'default_printer';

This option is nice and easy and it will work well with 10, or 10,000 settings. With the other option you'll have to add a new column, which would be a completely pointless waste of time.

Edit

After your 1st comment you could choose multiple values like this:

SELECT * FROM settings WHERE name IN ('default_printer','default_page_size');

:-)

Problem

What's the best way to structure a MySQL table for storing admin settings? Like this? ``` Setting _|_ Value setting1 | a setting2 | b setting3 | c setting4 | d setting5 | e ``` Or like this? ``` |--------|_setting1_|_setting2_|_setting3_|_setting4_|_setting5_| Settings | a | b | c | d | e | ``` Or maybe some other way?

Original source