我应该将应用设置存储在一个列数组中吗?或创建一个多列表?

时间:2018-02-13 18:11:18

标签: php mysql

我正在构建我的第一个应用程序,但我是mysql数据库的新手。 我想将用户个性化设置存储在数据库中,这里有两种方案可以实现:

第一个:

COLUMNS: "uid" | "app_settings"
ROWS:      1   |  0,1,0,1,ffff00,#ff0000

将它们存储为数组,然后通过PHP将其分解。

第二个:

COLUMNS: "uid" | "show_menu" | "show_toolbar" | "show_email | "menu_color" | "toolbar_color"
ROWS:      1   |     0       |       1        |      1      |    #ffff00   | #ff0000

将每个存储在一个单独的列中。

两种方式都运行良好,但我想知道使用第一种方法是不是一种坏习惯。

分解每个值的额外进程对于大规模的服务器资源是否是压倒性的? (使用PHP爆炸)或选择多个列在某种程度上就像在处理速度方面通过php爆炸它们一样?

1 个答案:

答案 0 :(得分:0)

这完全取决于你打算使用这些数据的内容。

在数据库中使用单独列的主要目的是能够索引此类数据。

如果只是存储问题,你可以在一个字段中使用你的存储格式,但最好使用众所周知的格式为json(在存储到db之前在PHP中使用json_encoding,在读取之后使用json_decode)。 另外,如果你真的想节省空间,那么假设“show_menu”/“show_toolbar”这样的东西只是布尔标志,你可以将它们作为位字段存储在一个数字中。例如,名为show_rights的字段可能具有值6,其转换为二进制110,因此[1:show_menu] [1:show_toolbar] [0:show_email]。