【发布时间】:2013-12-01 06:02:46
【问题描述】:
我有一个想法,我使用 PHP 的 json_encode 将多维/非多维数组转换为 JSON 字符串,并将数据存储到我的 SQL 数据库中。
例如,我有一个名为“用户”的表。表 'users' 有 3 个字段:id、name、data
使用php,我想获取用户John的数据:SELECT data FROM users WHERE name='john'
现在“数据”字段的值/文本将如下所示:{"gender":"male","birthday":"8-Jan-1991","country":"UK","city":"London"}
我将使用 PHP 的 json_decode 解码“数据”字段,然后使用我自制的 PHP 函数之一将 stdClass 对象转换为数组。然后我可以在任何我想要的地方显示 John 的信息:$user['data']['country']。
这让我免于在数据库中为国家、城市、生日等创建额外字段。但它安全吗?使用这种方法在 MySQL 上存储数据有什么缺点或问题吗?
【问题讨论】:
-
您为什么要这样做?创建这些数据库字段只需不到一分钟的时间,而您得到的只是性能损失、序列化和反序列化数据的变通办法,而且您也无法对数据执行正确的 SQL 语句。跨度>
-
我不建议像@slhck 所说的那样这样做。你可能想看到这个问题stackoverflow.com/questions/15367696/…。这个问题的答案解释了我想说的。
-
在事情变慢之前,您必须拥有数万条记录。这种模式是一种混合的 nosql,有时可能非常有用。