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

是像这样吗?

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

还是像这样?

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

或者是其他方式?

推荐答案

表名='设置'

name  | varchar <-- primary key
value | varchar

那么您可以这样查询:

SELECT * FROM settings WHERE name = 'default_printer';

此选项简单易用,在10或10,000个设置下都能很好地工作.对于另一种 Select ,您必须添加一个新的列,这将是完全没有意义的时间浪费.

编辑

在您的第一条 comments 之后,您可以 Select 多个值,如下所示:

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

:-)

Database相关问答推荐

如何在 C# 控制台应用程序中执行 CMD 命令?

Spring Data JPA 对 SQL 注入安全吗

设计用于存储多人游戏的各种要求和统计数据的表格

寻找基于磁盘的类 redis 数据库

查询表的外键关系

应用程序服务器 JDBC 资源的 DataSource 或 ConnectionPoolDataSource

将图像文件存储在 Mongo 数据库中,这是个好主意吗?

如何使用 SQL 命令文件创建 SQLite3 数据库文件?

在 SQL Server 2005 中将数据库从一个驱动器移动到另一个驱动器的正确方法是什么?

如何在实体-属性-值设计中处理不同的数据类型(例如,具有多列的单个表或每种数据类型的多个表)?

Android 上的测试数据库:ProviderTestCase2 还是 RenamingDelegatingContext?

Oracle:如何在 Oracle SQL 中将十六进制转换为十进制?

限制来自本地主机的 MySQL 连接以提高安全性

如何在 SQL Server 中生成并手动插入唯一标识符?

我应该混淆用户的数据库 ID 吗?

SQL Server Express LocalDB 可以远程连接吗?

最小覆盖和功能依赖

For循环或数据库调用哪个更好?

在一个查询中使用 group by 计算多列

数据库索引及其 Big-O 表示法