我正在构建我的第一个应用程序,但我是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爆炸它们一样?
答案 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]。