我应该如何使用MySQL构建我的设置表?

Cam*_*Cam 23 mysql database organization

构建用于存储管理设置的MySQL表的最佳方法是什么?

像这样?

Setting _|_ Value
setting1 |   a
setting2 |   b
setting3 |   c
setting4 |   d
setting5 |   e
Run Code Online (Sandbox Code Playgroud)

或者像这样?

|--------|_setting1_|_setting2_|_setting3_|_setting4_|_setting5_|
Settings |    a     |    b     |    c     |    d     |    e     |
Run Code Online (Sandbox Code Playgroud)

或者其他一些方式?

Ben*_*ard 24

表名='设置'

name  | varchar <-- primary key
value | varchar
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样查询:

SELECT * FROM settings WHERE name = 'default_printer';
Run Code Online (Sandbox Code Playgroud)

这个选项很简单,它可以很好地适应10或10,000个设置.使用另一个选项,您将不得不添加一个新列,这将完全没有浪费时间.

编辑

在您的第一个评论后,您可以选择多个这样的值:

SELECT * FROM settings WHERE name IN ('default_printer','default_page_size');
Run Code Online (Sandbox Code Playgroud)

:-)

  • 我同意,我添加了另一个可能的SQL语句,我们在ERP系统上使用这种方法,拥有大量设置.:-) (2认同)

ref*_*med 5

将第一个选项 ( Setting, Value) 视为列。但也要考虑添加额外的元列,例如Description(如果您有很多不明确的设置,将会派上用场)、PreviousValueLastUpdatedUpdatedBy等。