Да, это будет работать, но имеет недостаток в том, что значения настроек не имеют правильного типа. Вы должны будете объявить все как VARCHAR, ваше приложение должно будет проверить правильность значений.
Конечно, можно создать таблицу для каждого типа настроек, например,
create table Settings
(
settings_id primary key int not null,
name VARCHAR(255) not null,
);
create table DoubleValues
(
value double not null
fk_setting int not null;
);
create table ColorValues
(
value char(8) not null
fk_setting int not null;
);
..
Другой способ - создать таблицу, состоящую из одной строки со столбцом для каждого параметра. Таким образом, вы получите правильную типизацию и сможете добавить проверочные ограничения на уровне базы данных. Но я считаю, что этот вариант хуже поддерживать и расширять, поэтому я бы предпочел первый, но, как всегда, это зависит от ваших конкретных потребностей.
Другим способом было бы использовать простой текстовый файл и считывать настройки в хеш-таблицу, что будет самым быстрым способом. Может быть, вы можете взглянуть на базу данных noSQL, такую как MongoDb или CouchDb.
Подумайте, являются ли ваши настройки в основном статическими или как часто новые ключи настроек вставляются или удаляются.