Подтвердить что ты не робот

Как мне настроить таблицу настроек MySQL?

Какой лучший способ структурировать таблицу MySQL для хранения настроек администратора?

Как это?

Setting _|_ Value
setting1 |   a
setting2 |   b
setting3 |   c
setting4 |   d
setting5 |   e

Или как это?

|--------|_setting1_|_setting2_|_setting3_|_setting4_|_setting5_|
Settings |    a     |    b     |    c     |    d     |    e     |

Или, может быть, каким-то другим способом?

4b9b3361

Ответ 1

Название таблицы = 'settings'

name  | varchar <-- primary key
value | varchar

Затем вы можете запросить следующее:

SELECT * FROM settings WHERE name = 'default_printer';

Эта опция приятная и простая, и она будет работать с 10 или 10 000 настройками. С другим вариантом вам придется добавить новый столбец, который будет совершенно бессмысленной тратой времени.

Изменить

После 1-го комментария вы можете выбрать несколько таких значений:

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

: -)

Ответ 2

Рассмотрим первый вариант (Setting, Value) в качестве столбцов. Но также подумайте над добавлением дополнительных мета-столбцов, например Description (пригодится, если у вас много неоднозначных настроек), PreviousValue, LastUpdated, UpdatedBy и т.д.

Ответ 4

Как обычно, это зависит. Решение 1 проще. Sol # 2 легко интегрируется с ORM, но может поражать ограничения размера строки DB. Google для OTLT (как в одной проблеме True Lookup Table) Сколько у вас настроек (несколько? Десятки? Сотни?) Как часто вы будете нуждаться в них?