php – json列vs多列
发布时间:2020-12-13 13:14:11 所属栏目:PHP教程 来源:网络整理
导读:我甚至不知道是否将其称为序列化列是正确的,但我将解释自己,例如,我有一个用户表,我想存储用户的电话号码(手机,家庭,办公室等)所以,我想为每个数字类型创建一个列,但同时我想到了一个想法,如果我在一个列中保存一个json字符串,那么,我将永远不会有一个列可能
我甚至不知道是否将其称为序列化列是正确的,但我将解释自己,例如,我有一个用户表,我想存储用户的电话号码(手机,家庭,办公室等)所以,我想为每个数字类型创建一个列,但同时我想到了一个想法,如果我在一个列中保存一个json字符串,那么,我将永远不会有一个列可能将永远不会被使用,我可以在从数据库中读取数据时将该字符串转换为php数组,但我想听听这种做法的商品和坏处,也许这只是一个坏主意,但首先我想知道是什么其他人不得不说
谢谢
简答,多列.
答案很长: 为了爱世界上所有圣洁的人,请不要在单个文本列中存储多个数据集 我假设你将有一张桌子 +------------------------------+ +----------------------+ | User | cell | office | home | OR | User | JSON String | +------------------------------+ +----------------------+ 首先,我会说这两种解决方案都不是最好的解决方案,但如果你要从两者中选择第一种解决方案是最好的.主要有几个原因,但具体修改和查询的能力非常重要.想想algrothim修改第二个选项. SELECT `JSON` FROM `table` WHERE `User` = ? Then you have to do a search and replace in either your server side or client side language Finally you have to reinsert the JSON string 此解决方案总计2个查询和搜索和替换算法.不好! 现在想想第一个解决方案. SELECT * FROM `table` WHERE `User` = ? Then you can do a simple JSON encode to send it down To modify you only need one Query. UPDATE `table` SET `cell` = ? WHERE `User` = ? to update more than one its again a simple single query UPDATE `table` SET `cell` = ?,`home` = ? WHERE `User` = ? 这显然更好,但并不是最好的 还有第三种解决方案假设您希望用户能够插入无限数量的电话号码. 让我们使用关系表,所以现在有两个表. +-------------------------------------+ +---------+ | Phone | | Users | +-------------------------------------+ +---------+ | user_name| phone_number | type | | U_name | +-------------------------------------+ +---------+ 现在,您可以使用类似的内容查询用户的所有电话号码 现在,您可以通过连接查询表 选择用户.,电话.来自电话,用户WHERE phone.user_name =? AND Users.U_name =? 插入也很简单,类型检查也很容易. 请记住,这是一个简单的示例,但SQL确实为您的数据结构提供了大量的功能,您应该使用它而不是避免使用它 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |